Run docker tests in E2E GH Action

Build image with new input option
Run most of the basic docker tests in E2E
Signed-off-by: Derek Nola <derek.nola@suse.com>
This commit is contained in:
Derek Nola 2024-03-06 14:18:04 -08:00
parent ec5d34dac0
commit aea81c0822
4 changed files with 63 additions and 21 deletions

View File

@ -7,6 +7,10 @@ on:
type: boolean
required: false
default: false
upload-image:
type: boolean
required: false
default: false
permissions:
contents: read
@ -23,6 +27,9 @@ jobs:
run: |
DOCKER_BUILDKIT=1 SKIP_IMAGE=1 SKIP_AIRGAP=1 SKIP_VALIDATE=1 GOCOVER=1 make
sha256sum dist/artifacts/k3s | sed 's|dist/artifacts/||' > dist/artifacts/k3s.sha256sum
- name: Build K3s image
if: inputs.upload-image == true
run: make package-image
- name: bundle repo
if: inputs.upload-repo == true
run: |
@ -34,6 +41,9 @@ jobs:
with:
name: k3s-repo.tar.gz
path: k3s-repo.tar.gz
- name: "Save K3s image"
if: inputs.upload-image == true
run: docker image save rancher/k3s -o ./dist/artifacts/k3s-image.tar
- name: "Upload K3s binary"
if: inputs.upload-repo == false
uses: actions/upload-artifact@v4

View File

@ -26,8 +26,10 @@ permissions:
jobs:
build:
uses: ./.github/workflows/build-k3s.yaml
test:
name: "E2E Test"
with:
upload-image: true
e2e:
name: "E2E Tests"
needs: build
runs-on: ubuntu-latest
timeout-minutes: 40
@ -64,7 +66,7 @@ jobs:
name: k3s
path: ./dist/artifacts
- name: Run E2E Tests
- name: Run ${{ matrix.etest }} Test
env:
E2E_GOCOVER: "true"
run: |
@ -83,4 +85,31 @@ jobs:
token: ${{ secrets.CODECOV_TOKEN }}
files: tests/e2e/${{ matrix.etest }}/coverage.out
flags: e2etests # optional
verbose: true # optional (default = false)
verbose: true # optional (default = false)
docker:
needs: build
name: Docker Tests
runs-on: ubuntu-latest
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
dtest: [basics, bootstraptoken, cacerts, lazypull, upgrade]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: "Download k3s image"
uses: actions/download-artifact@v4
with:
name: k3s
path: ./dist/artifacts
- name: Load k3s image
run: docker image load -i ./dist/artifacts/k3s-image.tar
- name: Run ${{ matrix.dtest }} Test
run: |
chmod +x ./dist/artifacts/k3s
. ./tests/docker/test-helpers
. ./tests/docker/test-run-${{ matrix.dtest }}
echo "Did test-run-${{ matrix.dtest }} pass $?"

View File

@ -30,10 +30,10 @@ env:
jobs:
build:
uses: ./.github/workflows/build-k3s.yaml
test:
itest:
needs: build
name: Integration Tests
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
timeout-minutes: 45
strategy:
fail-fast: false
@ -71,4 +71,4 @@ jobs:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./${{ matrix.itest }}.out
flags: inttests # optional
verbose: true # optional (default = false)
verbose: true # optional (default = false)

View File

@ -20,9 +20,24 @@ mkdir -p $artifacts
docker ps
# ---
# Only run basic tests on non amd64 archs, we use GitHub Actions for amd64
if [ "$ARCH" != 'amd64' ]; then
. ./tests/docker/test-run-basics
echo "Did test-run-basics $?"
. ./tests/docker/test-run-basics
echo "Did test-run-basics $?"
. ./tests/docker/test-run-cacerts
echo "Did test-run-cacerts $?"
. ./tests/docker/test-run-bootstraptoken
echo "Did test-run-bootstraptoken $?"
. ./tests/docker/test-run-upgrade
echo "Did test-run-upgrade $?"
. ./tests/docker/test-run-lazypull
echo "Did test-run-lazypull $?"
fi
. ./tests/docker/test-run-compat
echo "Did test-run-compat $?"
@ -30,21 +45,9 @@ echo "Did test-run-compat $?"
. ./tests/docker/test-run-hardened
echo "Did test-run-hardened $?"
. ./tests/docker/test-run-cacerts
echo "Did test-run-cacerts $?"
. ./tests/docker/test-run-bootstraptoken
echo "Did test-run-bootstraptoken $?"
. ./tests/docker/test-run-upgrade
echo "Did test-run-upgrade $?"
. ./tests/docker/test-run-etcd
echo "Did test-run-etcd $?"
. ./tests/docker/test-run-lazypull
echo "Did test-run-lazypull $?"
# ---
[ "$ARCH" != 'amd64' ] && \