diff --git a/.github/actions/image-test/action.yml b/.github/actions/image-test/action.yml new file mode 100644 index 000000000..5963dca3f --- /dev/null +++ b/.github/actions/image-test/action.yml @@ -0,0 +1,24 @@ +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,linux/arm64 + tags: localhost/ansible-rulebook:test + outputs: + - type=image,push=false + + - 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 8c3aebac7..204c0e598 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 783dfd4e7..c1f3e39a7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -79,3 +79,14 @@ jobs: flags: "unittests-${{ matrix.python-version }}" name: codecov-umbrella verbose: true + + build-and-test-image: + if: github.repository == 'ansible/ansible-rulebook' + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Build and test the container image + uses: ./.github/actions/image-test