Skip to content
8 changes: 8 additions & 0 deletions .github/workflows/comment-trigger.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
53 changes: 15 additions & 38 deletions .github/workflows/k8s_e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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:
Expand All @@ -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 }}
Expand All @@ -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: always() && (github.event_name != 'pull_request' || needs.changes.outputs.k8s == 'true')
Comment thread
neuronull marked this conversation as resolved.
Outdated
# cargo-deb requires a release build, but we don't need optimizations for tests
env:
CARGO_PROFILE_RELEASE_OPT_LEVEL: 0
Expand Down Expand Up @@ -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: always() && (github.event_name != 'pull_request' || needs.changes.outputs.k8s == 'true')
Comment thread
neuronull marked this conversation as resolved.
Outdated
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
Expand Down Expand Up @@ -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'
Comment thread
dsmith3197 marked this conversation as resolved.
strategy:
matrix: ${{ fromJson(needs.compute-k8s-test-plan.outputs.matrix) }}
fail-fast: false
Expand Down Expand Up @@ -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 }}
Expand Down