From 596d5050a4c8ceb3890ca2d875b572df070c9c5c Mon Sep 17 00:00:00 2001 From: Mauro Ezequiel Moltrasio Date: Wed, 29 May 2024 17:24:03 +0200 Subject: [PATCH 1/2] Run integration tests on konflux built images Try different branch filter Finer control on when konflux tests run Debug Fix colliding concurrency group Fix if condition Singular... Image Remove debug job Deep fetch Fix quotes Use the correct tag everywhere Tag format, maybe? Add k8s based tests Checkout head branch on PRs Fix collector-qa-tag Use rhacs-eng image for k8s based tests Test push actions Make PR testing easier Properly wait for the integration tests containers Exclude multiarch builds from konflux tests --- .github/workflows/integration-tests.yml | 25 +++++- .github/workflows/k8s-integration-tests.yml | 2 +- .github/workflows/konflux-tests.yml | 85 +++++++++++++++++++++ .github/workflows/konflux.yml | 31 ++++++++ 4 files changed, 139 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/konflux-tests.yml create mode 100644 .github/workflows/konflux.yml diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index ae92f5399f..c741d77dec 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -24,6 +24,13 @@ on: Optional repository to use for the collector image type: string default: "quay.io/rhacs-eng/collector" + is-konflux: + description: | + Marker for workflows triggered for a konflux build. + These builds don't support multiarch, so it should only run x86 + tests + type: boolean + default: false jobs: amd64-required-integration-tests: @@ -70,7 +77,11 @@ jobs: arm64-integration-tests: uses: ./.github/workflows/integration-tests-vm-type.yml - if: github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'run-multiarch-builds') + if: | + !inputs.is-konflux && ( + github.event_name == 'push' || + contains(github.event.pull_request.labels.*.name, 'run-multiarch-builds') + ) strategy: # ensure that if one part of the matrix fails, the # rest will continue @@ -92,7 +103,11 @@ jobs: s390x-integration-tests: uses: ./.github/workflows/integration-tests-vm-type.yml - if: contains(github.event.pull_request.labels.*.name, 'run-multiarch-builds') || github.event_name == 'push' + if: | + !inputs.is-konflux && ( + github.event_name == 'push' || + contains(github.event.pull_request.labels.*.name, 'run-multiarch-builds') + ) with: vm_type: rhel-s390x collector-tag: ${{ inputs.collector-tag }} @@ -103,7 +118,11 @@ jobs: ppc64le-integration-tests: uses: ./.github/workflows/integration-tests-vm-type.yml - if: contains(github.event.pull_request.labels.*.name, 'run-multiarch-builds') || github.event_name == 'push' + if: | + !inputs.is-konflux && ( + github.event_name == 'push' || + contains(github.event.pull_request.labels.*.name, 'run-multiarch-builds') + ) with: vm_type: rhel-ppc64le collector-tag: ${{ inputs.collector-tag }} diff --git a/.github/workflows/k8s-integration-tests.yml b/.github/workflows/k8s-integration-tests.yml index 2c0dbe2bf2..bd455b767a 100644 --- a/.github/workflows/k8s-integration-tests.yml +++ b/.github/workflows/k8s-integration-tests.yml @@ -17,7 +17,7 @@ on: env: ANSIBLE_CONFIG: ${{ github.workspace }}/ansible/ansible.cfg COLLECTOR_TESTS_IMAGE: quay.io/rhacs-eng/qa-multi-arch:collector-tests-${{ inputs.collector-tag }} - COLLECTOR_IMAGE: quay.io/stackrox-io/collector:${{ inputs.collector-tag }} + COLLECTOR_IMAGE: quay.io/rhacs-eng/collector:${{ inputs.collector-tag }} jobs: k8s-integration-tests: diff --git a/.github/workflows/konflux-tests.yml b/.github/workflows/konflux-tests.yml new file mode 100644 index 0000000000..1b0b3147a3 --- /dev/null +++ b/.github/workflows/konflux-tests.yml @@ -0,0 +1,85 @@ +name: Run konflux tests + +on: + workflow_call: + +jobs: + init: + runs-on: ubuntu-latest + outputs: + collector-tag: ${{ steps.generate-tag.outputs.collector-tag }} + collector-qa-tag: ${{ steps.generate-tag.outputs.collector-qa-tag }} + rebuild-qa-containers: ${{ steps.filter.outputs.container }} + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ github.head_ref || github.ref_name }} + submodules: true + fetch-depth: 0 + + - uses: dorny/paths-filter@v3 + id: filter + with: + list-files: shell + + # Only trigger a rebuild when the QA tag has changed + filters: | + container: + - integration-tests/container/QA_TAG + + - id: generate-tag + run: | + echo "collector-tag=$(make tag)-fast" >> "$GITHUB_OUTPUT" + + COLLECTOR_QA_TAG="$(cat ${{ github.workspace }}/integration-tests/container/QA_TAG)" + if [[ "${GITHUB_EVENT_NAME}" == "pull_request" && "${{ steps.filter.outputs.container }}" == "true" ]]; then + COLLECTOR_QA_TAG="${COLLECTOR_QA_TAG}-${COLLECTOR_TAG}" + fi + + echo "collector-qa-tag=${COLLECTOR_QA_TAG}" >> "$GITHUB_OUTPUT" + + wait-for-images: + runs-on: ubuntu-latest + needs: + - init + steps: + - uses: stackrox/actions/release/wait-for-image@v1 + with: + token: ${{ secrets.QUAY_RHACS_ENG_BEARER_TOKEN }} + image: rhacs-eng/collector:${{ needs.init.outputs.collector-tag }} + + integration-tests-containers: + uses: ./.github/workflows/integration-test-containers.yml + needs: + - init + with: + collector-tag: ${{ needs.init.outputs.collector-tag }} + collector-qa-tag: ${{ needs.init.outputs.collector-qa-tag }} + rebuild-qa-containers: ${{ needs.init.outputs.rebuild-qa-containers == 'true' }} + secrets: inherit + + run-konflux-tests: + uses: ./.github/workflows/integration-tests.yml + needs: + - init + - wait-for-images + - integration-tests-containers + with: + collector-tag: ${{ needs.init.outputs.collector-tag }} + collector-qa-tag: ${{ needs.init.outputs.collector-qa-tag }} + is-konflux: true + if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip-integration-tests') }} + secrets: inherit + + k8s-integration-tests: + uses: ./.github/workflows/k8s-integration-tests.yml + with: + collector-tag: ${{ needs.init.outputs.collector-tag }} + collector-qa-tag: ${{ needs.init.outputs.collector-qa-tag }} + if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip-integration-tests') }} + needs: + - init + - wait-for-images + - integration-tests-containers + secrets: inherit + diff --git a/.github/workflows/konflux.yml b/.github/workflows/konflux.yml new file mode 100644 index 0000000000..c954ff5b73 --- /dev/null +++ b/.github/workflows/konflux.yml @@ -0,0 +1,31 @@ +name: Run konflux workflows + +on: + push: + branches: + - master + - release-* + - mauro/* + tags: + - 3.*.* + - mauro-test-* + pull_request: + types: + - labeled + - unlabeled + - synchronize + - opened + - reopened + +concurrency: + group: ${{ github.head_ref || github.run_id }}-konflux + cancel-in-progress: true + +jobs: + run-tests: + uses: ./.github/workflows/konflux-tests.yml + if: github.event_name == 'push' || + contains(github.head_ref, 'konflux') || + contains(github.head_ref, 'rhtap') + secrets: inherit + From a9f40384a8a27f41dba39f73cb7a902a6011959d Mon Sep 17 00:00:00 2001 From: Mauro Ezequiel Moltrasio Date: Tue, 4 Jun 2024 11:46:53 +0200 Subject: [PATCH 2/2] Remove debug triggers --- .github/workflows/konflux.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/konflux.yml b/.github/workflows/konflux.yml index c954ff5b73..1b178a2ac6 100644 --- a/.github/workflows/konflux.yml +++ b/.github/workflows/konflux.yml @@ -5,10 +5,8 @@ on: branches: - master - release-* - - mauro/* tags: - 3.*.* - - mauro-test-* pull_request: types: - labeled