From d87ab14fa7c2244a631189083cceb6344ae9f306 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= Date: Tue, 18 Jan 2022 12:38:18 +0100 Subject: [PATCH 1/2] workflows: Ensure force-skip-ci skips all actions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Before this change it was only applied to the static-checks, but if we're already taking the extreme path of skipping the CI, we better ensure we skip all the actions and not just a few of them. Fixes: #3471 Signed-off-by: Fabiano FidĂȘncio --- .github/workflows/PR-wip-checks.yaml | 1 + .github/workflows/commit-message-check.yaml | 12 +++++++----- .github/workflows/kata-deploy-push.yaml | 7 +++++++ .github/workflows/move-issues-to-in-progress.yaml | 4 ++++ .github/workflows/require-pr-porting-labels.yaml | 3 +++ .github/workflows/snap.yaml | 3 +++ 6 files changed, 25 insertions(+), 5 deletions(-) diff --git a/.github/workflows/PR-wip-checks.yaml b/.github/workflows/PR-wip-checks.yaml index 16f8167b2..97c35145a 100644 --- a/.github/workflows/PR-wip-checks.yaml +++ b/.github/workflows/PR-wip-checks.yaml @@ -15,6 +15,7 @@ jobs: name: WIP Check steps: - name: WIP Check + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} uses: tim-actions/wip-check@1c2a1ca6c110026b3e2297bb2ef39e1747b5a755 with: labels: '["do-not-merge", "wip", "rfc"]' diff --git a/.github/workflows/commit-message-check.yaml b/.github/workflows/commit-message-check.yaml index 55f03fecd..3c2b5e91a 100644 --- a/.github/workflows/commit-message-check.yaml +++ b/.github/workflows/commit-message-check.yaml @@ -18,24 +18,26 @@ jobs: name: Commit Message Check steps: - name: Get PR Commits + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} id: 'get-pr-commits' uses: tim-actions/get-pr-commits@v1.0.0 with: token: ${{ secrets.GITHUB_TOKEN }} - name: DCO Check + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} uses: tim-actions/dco@2fd0504dc0d27b33f542867c300c60840c6dcb20 with: commits: ${{ steps.get-pr-commits.outputs.commits }} - name: Commit Body Missing Check - if: ${{ success() || failure() }} + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') && ( success() || failure() ) }} uses: tim-actions/commit-body-check@v1.0.2 with: commits: ${{ steps.get-pr-commits.outputs.commits }} - name: Check Subject Line Length - if: ${{ success() || failure() }} + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') && ( success() || failure() ) }} uses: tim-actions/commit-message-checker-with-regex@v0.3.1 with: commits: ${{ steps.get-pr-commits.outputs.commits }} @@ -44,7 +46,7 @@ jobs: post_error: ${{ env.error_msg }} - name: Check Body Line Length - if: ${{ success() || failure() }} + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') && ( success() || failure() ) }} uses: tim-actions/commit-message-checker-with-regex@v0.3.1 with: commits: ${{ steps.get-pr-commits.outputs.commits }} @@ -71,7 +73,7 @@ jobs: post_error: ${{ env.error_msg }} - name: Check Fixes - if: ${{ success() || failure() }} + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') && ( success() || failure() ) }} uses: tim-actions/commit-message-checker-with-regex@v0.3.1 with: commits: ${{ steps.get-pr-commits.outputs.commits }} @@ -82,7 +84,7 @@ jobs: one_pass_all_pass: 'true' - name: Check Subsystem - if: ${{ success() || failure() }} + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') && ( success() || failure() ) }} uses: tim-actions/commit-message-checker-with-regex@v0.3.1 with: commits: ${{ steps.get-pr-commits.outputs.commits }} diff --git a/.github/workflows/kata-deploy-push.yaml b/.github/workflows/kata-deploy-push.yaml index effca2e20..051808f89 100644 --- a/.github/workflows/kata-deploy-push.yaml +++ b/.github/workflows/kata-deploy-push.yaml @@ -19,11 +19,13 @@ jobs: steps: - uses: actions/checkout@v2 - name: Install docker + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} run: | curl -fsSL https://test.docker.com -o test-docker.sh sh test-docker.sh - name: Build ${{ matrix.asset }} + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} run: | make "${KATA_ASSET}-tarball" build_dir=$(readlink -f build) @@ -33,6 +35,7 @@ jobs: KATA_ASSET: ${{ matrix.asset }} - name: store-artifact ${{ matrix.asset }} + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} uses: actions/upload-artifact@v2 with: name: kata-artifacts @@ -45,14 +48,17 @@ jobs: steps: - uses: actions/checkout@v2 - name: get-artifacts + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} uses: actions/download-artifact@v2 with: name: kata-artifacts path: build - name: merge-artifacts + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} run: | make merge-builds - name: store-artifacts + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} uses: actions/upload-artifact@v2 with: name: kata-static-tarball @@ -63,6 +69,7 @@ jobs: steps: - uses: actions/checkout@v2 - name: make kata-tarball + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} run: | make kata-tarball sudo make install-tarball diff --git a/.github/workflows/move-issues-to-in-progress.yaml b/.github/workflows/move-issues-to-in-progress.yaml index 6a55340af..0e15abaea 100644 --- a/.github/workflows/move-issues-to-in-progress.yaml +++ b/.github/workflows/move-issues-to-in-progress.yaml @@ -16,6 +16,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Install hub + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} run: | HUB_ARCH="amd64" HUB_VER=$(curl -sL "https://api.github.com/repos/github/hub/releases/latest" |\ @@ -26,6 +27,7 @@ jobs: sudo install hub /usr/local/bin - name: Install hub extension script + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} run: | # Clone into a temporary directory to avoid overwriting # any existing github directory. @@ -35,9 +37,11 @@ jobs: popd &>/dev/null - name: Checkout code to allow hub to communicate with the project + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} uses: actions/checkout@v2 - name: Move issue to "In progress" + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} env: GITHUB_TOKEN: ${{ secrets.KATA_GITHUB_ACTIONS_TOKEN }} run: | diff --git a/.github/workflows/require-pr-porting-labels.yaml b/.github/workflows/require-pr-porting-labels.yaml index 3f3807194..585e86bc4 100644 --- a/.github/workflows/require-pr-porting-labels.yaml +++ b/.github/workflows/require-pr-porting-labels.yaml @@ -20,6 +20,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Install hub + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} run: | HUB_ARCH="amd64" HUB_VER=$(curl -sL "https://api.github.com/repos/github/hub/releases/latest" |\ @@ -30,6 +31,7 @@ jobs: sudo install hub /usr/local/bin - name: Checkout code to allow hub to communicate with the project + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} uses: actions/checkout@v2 - name: Install porting checker script @@ -42,6 +44,7 @@ jobs: popd &>/dev/null - name: Stop PR being merged unless it has a correct set of porting labels + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} env: GITHUB_TOKEN: ${{ secrets.KATA_GITHUB_ACTIONS_TOKEN }} run: | diff --git a/.github/workflows/snap.yaml b/.github/workflows/snap.yaml index 165a3a3be..f80df268d 100644 --- a/.github/workflows/snap.yaml +++ b/.github/workflows/snap.yaml @@ -5,13 +5,16 @@ jobs: runs-on: ubuntu-20.04 steps: - name: Check out + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} uses: actions/checkout@v2 with: fetch-depth: 0 - name: Install Snapcraft + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} uses: samuelmeuli/action-snapcraft@v1 - name: Build snap + if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} run: | snapcraft -d snap --destructive-mode From 7a879164bd2fa1a7aad7954a2fda8374e8af9968 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= Date: Tue, 18 Jan 2022 14:39:01 +0100 Subject: [PATCH 2/2] workflows: Ensure a label change re-triggers the actions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is needed in order to ensure that, for instance, if `force-skip-ci` label is either added or removed later, the jobs related to the actions will be restarted and accordingly checked. Signed-off-by: Fabiano FidĂȘncio --- .github/workflows/commit-message-check.yaml | 2 ++ .github/workflows/kata-deploy-push.yaml | 11 ++++++++++- .github/workflows/move-issues-to-in-progress.yaml | 2 ++ .github/workflows/snap.yaml | 11 ++++++++++- 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/.github/workflows/commit-message-check.yaml b/.github/workflows/commit-message-check.yaml index 3c2b5e91a..7abb5d851 100644 --- a/.github/workflows/commit-message-check.yaml +++ b/.github/workflows/commit-message-check.yaml @@ -5,6 +5,8 @@ on: - opened - reopened - synchronize + - labeled + - unlabeled env: error_msg: |+ diff --git a/.github/workflows/kata-deploy-push.yaml b/.github/workflows/kata-deploy-push.yaml index 051808f89..39b10a550 100644 --- a/.github/workflows/kata-deploy-push.yaml +++ b/.github/workflows/kata-deploy-push.yaml @@ -1,6 +1,15 @@ name: kata deploy build -on: [push, pull_request] +on: + pull_request: + types: + - opened + - edited + - reopened + - synchronize + - labeled + - unlabeled + push jobs: build-asset: diff --git a/.github/workflows/move-issues-to-in-progress.yaml b/.github/workflows/move-issues-to-in-progress.yaml index 0e15abaea..ab97e2de9 100644 --- a/.github/workflows/move-issues-to-in-progress.yaml +++ b/.github/workflows/move-issues-to-in-progress.yaml @@ -10,6 +10,8 @@ on: types: - opened - reopened + - labeled + - unlabeled jobs: move-linked-issues-to-in-progress: diff --git a/.github/workflows/snap.yaml b/.github/workflows/snap.yaml index f80df268d..5ec399e83 100644 --- a/.github/workflows/snap.yaml +++ b/.github/workflows/snap.yaml @@ -1,5 +1,14 @@ name: snap CI -on: ["pull_request"] +on: + pull_request: + types: + - opened + - synchronize + - reopened + - edited + - labeled + - unlabeled + jobs: test: runs-on: ubuntu-20.04