diff --git a/.github/workflows/comment-trigger.yml b/.github/workflows/comment-trigger.yml index 84cabd825ccf3..cc087179e7b91 100644 --- a/.github/workflows/comment-trigger.yml +++ b/.github/workflows/comment-trigger.yml @@ -15,6 +15,7 @@ # /ci-run-unit-windows : runs Unit - Windows # /ci-run-environment : runs Environment Suite # /ci-run-regression : runs Regression Detection Suite +# /ci-run-k8s : runs K8s E2E Suite name: Comment Trigger @@ -55,6 +56,7 @@ jobs: || contains(github.event.comment.body, '/ci-run-unit-windows') || contains(github.event.comment.body, '/ci-run-environment') || contains(github.event.comment.body, '/ci-run-regression') + || contains(github.event.comment.body, '/ci-run-k8s') ) steps: - name: Get PR comment author @@ -116,3 +118,9 @@ jobs: if: contains(github.event.comment.body, '/ci-run-all') || contains(github.event.comment.body, '/ci-run-regression') uses: ./.github/workflows/regression.yml secrets: inherit + + k8s: + needs: validate + if: contains(github.event.comment.body, '/ci-run-all') || contains(github.event.comment.body, '/ci-run-k8s') + uses: ./.github/workflows/k8s_e2e.yml + secrets: inherit diff --git a/.github/workflows/integration-comment.yml b/.github/workflows/integration-comment.yml index 8089f69bccc86..f014f82a69312 100644 --- a/.github/workflows/integration-comment.yml +++ b/.github/workflows/integration-comment.yml @@ -377,9 +377,9 @@ jobs: uses: xt0rted/pull-request-comment-branch@v2 id: comment-branch - - name: (PR comment) Submit PR result as ${{ needs.test-integration.result }} + - name: (PR comment) Submit PR result as ${{ needs.integration-tests.result }} uses: myrotvorets/set-commit-status-action@v1.1.7 with: sha: ${{ steps.comment-branch.outputs.head_sha }} token: ${{ secrets.GITHUB_TOKEN }} - status: ${{ needs.test-integration.result }} + status: ${{ needs.integration-tests.result }} diff --git a/.github/workflows/k8s_e2e.yml b/.github/workflows/k8s_e2e.yml index e7faa3a59555a..e96c84569123c 100644 --- a/.github/workflows/k8s_e2e.yml +++ b/.github/workflows/k8s_e2e.yml @@ -16,9 +16,8 @@ name: K8S E2E Suite on: workflow_dispatch: + workflow_call: pull_request: - issue_comment: - types: [created] merge_group: types: [checks_requested] schedule: @@ -27,7 +26,6 @@ on: concurrency: group: ${{ github.workflow }}-${{ github.event.number || github.event.comment.html_url || github.event.merge_group.head_sha || github.event.schedule || github.sha }} - cancel-in-progress: true env: @@ -42,31 +40,9 @@ env: PROFILE: debug jobs: - validate: - name: Validate comment - runs-on: ubuntu-latest - if: | - github.event_name != 'issue_comment' || - ( github.event.issue.pull_request && - ( contains(github.event.comment.body, '/ci-run-all') || - contains(github.event.comment.body, '/ci-run-k8s') - ) - ) - steps: - - name: Get PR comment author - id: comment - uses: tspascoal/get-user-teams-membership@v2 - with: - username: ${{ github.actor }} - team: 'Vector' - GITHUB_TOKEN: ${{ secrets.GH_PAT_ORG }} - - - name: Validate author membership - if: steps.comment.outputs.isTeamMember == 'false' - run: exit 1 - changes: - needs: validate + # Only evaluate files changed on pull request trigger + if: github.event_name == 'pull_request' uses: ./.github/workflows/changes.yml with: base_ref: ${{ github.event.pull_request.base.ref }} @@ -76,8 +52,9 @@ jobs: build-x86_64-unknown-linux-gnu: name: Build - x86_64-unknown-linux-gnu runs-on: [linux, ubuntu-20.04-4core] - needs: [changes, validate] - if: github.event_name != 'pull_request' || needs.changes.outputs.k8s == 'true' + needs: changes + # Run this job even if `changes` job is skipped (non- pull request trigger) + if: ${{ !failure() && !cancelled() && (github.event_name != 'pull_request' || needs.changes.outputs.k8s == 'true') }} # cargo-deb requires a release build, but we don't need optimizations for tests env: CARGO_PROFILE_RELEASE_OPT_LEVEL: 0 @@ -141,8 +118,9 @@ jobs: compute-k8s-test-plan: name: Compute K8s test plan runs-on: ubuntu-latest - needs: [changes, validate] - if: github.event_name != 'pull_request' || needs.changes.outputs.k8s == 'true' + needs: changes + # Run this job even if `changes` job is skipped + if: ${{ !failure() && !cancelled() && (github.event_name != 'pull_request' || needs.changes.outputs.k8s == 'true') }} outputs: matrix: ${{ steps.set-matrix.outputs.matrix }} steps: @@ -195,9 +173,10 @@ jobs: name: K8s ${{ matrix.kubernetes_version.version }} / ${{ matrix.container_runtime }} (${{ matrix.kubernetes_version.role }}) runs-on: [linux, ubuntu-20.04-4core] needs: - - validate - build-x86_64-unknown-linux-gnu - compute-k8s-test-plan + # because `changes` job might be skipped + if: always() && needs.build-x86_64-unknown-linux-gnu.result == 'success' && needs.compute-k8s-test-plan.result == 'success' strategy: matrix: ${{ fromJson(needs.compute-k8s-test-plan.outputs.matrix) }} fail-fast: false @@ -246,20 +225,18 @@ jobs: final-result: name: K8s E2E Suite runs-on: ubuntu-latest - needs: [test-e2e-kubernetes, validate] - if: | - always() && (github.event_name != 'issue_comment' || (github.event.issue.pull_request - && (contains(github.event.comment.body, '/ci-run-k8s') || contains(github.event.comment.body, '/ci-run-all')))) + needs: test-e2e-kubernetes + if: always() env: FAILED: ${{ contains(needs.*.result, 'failure') }} steps: - name: (PR comment) Get PR branch - if: success() && github.event_name == 'issue_comment' + if: github.event_name == 'issue_comment' && env.FAILED != 'true' uses: xt0rted/pull-request-comment-branch@v2 id: comment-branch - name: (PR comment) Submit PR result as success - if: success() && github.event_name == 'issue_comment' + if: github.event_name == 'issue_comment' && env.FAILED != 'true' uses: myrotvorets/set-commit-status-action@v1.1.7 with: sha: ${{ steps.comment-branch.outputs.head_sha }}