From 2343ad6c25b9ce9a8e908c0f237785ccd96d7336 Mon Sep 17 00:00:00 2001 From: Tom Tuffin <71447672+ttuffin@users.noreply.github.com> Date: Tue, 17 Oct 2023 15:25:11 +0200 Subject: [PATCH] ci: update CI pipeline image build tests (#595) - Move build-and-test-image to actions - Run image test on PR and push to main - Run tests against amd64 arch (arm64 CI takes way too long (30+ minutes) due to poor emulator performance) --- .github/actions/image-test/action.yml | 23 +++++++++++++++++++++++ .github/workflows/build-image.yml | 10 ++-------- .github/workflows/ci.yml | 10 ++++++++++ 3 files changed, 35 insertions(+), 8 deletions(-) create mode 100644 .github/actions/image-test/action.yml diff --git a/.github/actions/image-test/action.yml b/.github/actions/image-test/action.yml new file mode 100644 index 00000000..a01ede5d --- /dev/null +++ b/.github/actions/image-test/action.yml @@ -0,0 +1,23 @@ +name: build-and-test-image +description: Build and test the container image + +runs: + using: composite + steps: + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Build container image + uses: docker/build-push-action@v4 + with: + context: . + platforms: linux/amd64 + tags: localhost/ansible-rulebook:test + load: true + + - name: Run tests + shell: bash + run: > + docker run --rm -u 0 localhost/ansible-rulebook:test bash -c ' + pip install -r requirements_test.txt && + pytest -m "e2e" -n auto' diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml index 8c3aebac..204c0e59 100644 --- a/.github/workflows/build-image.yml +++ b/.github/workflows/build-image.yml @@ -21,14 +21,8 @@ jobs: - name: Checkout repository uses: actions/checkout@v3 - - name: Build local image - run: docker build -t localhost/ansible-rulebook:test . - - - name: Run tests - run: > - docker run --rm -u 0 localhost/ansible-rulebook:test bash -c ' - pip install -r requirements_test.txt && - pytest -m "e2e" -n auto' + - name: Build and test the container image + uses: ./.github/actions/image-test build-and-push-image: needs: build-and-test-image diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 783dfd4e..438755aa 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -79,3 +79,13 @@ jobs: flags: "unittests-${{ matrix.python-version }}" name: codecov-umbrella verbose: true + + build-and-test-image: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Build and test the container image + uses: ./.github/actions/image-test