Skip to content

ci-bypass

Actions
Bypass CI checks for GitHub Actions
v1.1.1
Latest
Star (1)

CI Bypass

Bypass CI checks for GitHub Actions.

This action allows some users have no maintainers permissions to bypass CI checks. It is useful for CI/CD team to bypass CI checks on some special cases.

Usage

Skip job

jobs:
   check-bypass:
      name: Check Bypass
      runs-on: ubuntu-latest
      permissions:
         contents: read
      outputs:
         can-skip: ${{ steps.check-bypass.outputs.can-skip }}
      steps:
         - id: check-bypass
           name: Check Bypass
           uses: PFCCLab/ci-bypass@v1
           with:
              github-token: ${{ secrets.GITHUB_TOKEN }}
              non-pull-request-event-strategy: 'always-skipped'
              type: 'labeled'
              label: 'ci-bypass: example | ci-bypass: all'
              username: 'SigureMo'

   build:
      needs: check-bypass
      if: ${{ needs.check-bypass.outputs.can-skip != 'true' }}
      name: Build
      runs-on: ubuntu-latest

      steps:
         - name: Run build
           run: echo "Run build"

Skip steps

permissions:
   contents: read
jobs:
   build:
      name: Build
      runs-on: ubuntu-latest

      steps:
         - id: check-bypass
           name: Check Bypass
           uses: PFCCLab/ci-bypass@v1
           with:
              github-token: ${{ secrets.GITHUB_TOKEN }}
              non-pull-request-event-strategy: 'always-skipped'
              type: 'labeled'
              label: 'ci-bypass: example | ci-bypass: all'
              username: 'SigureMo'
         - name: Run build
           if: ${{ steps.check-bypass.outputs.can-skip != 'true' }}
           run: echo "Run build"

Skip with composite rule

permissions:
   contents: read
jobs:
   build:
      name: Build
      runs-on: ubuntu-latest

      steps:
         - id: check-bypass
           name: Check Bypass
           uses: PFCCLab/ci-bypass@v1
           with:
              github-token: ${{ secrets.GITHUB_TOKEN }}
              non-pull-request-event-strategy: 'always-skipped'
              type: 'composite'
              composite-rule: |
                 {
                    "any": [
                       {
                          "type": "labeled",
                          "label": ["ci-bypass: example", "ci-bypass: all"],
                          "username": ["SigureMo"]
                       },
                       {
                          "type": "commented",
                          "comment-pattern": [".*/bypass example.*", ".*/bypass all.*"],
                          "username": ["SigureMo"]
                       },
                       {
                          "type": "approved",
                          "username": ["SigureMo", "gouzil"]
                       }
                    ]
                 }
         - name: Run build
           if: ${{ steps.check-bypass.outputs.can-skip != 'true' }}
           run: echo "Run build"

All options

Name Description Required Default
github-token GitHub token to access GitHub API false undefined
non-pull-request-event-strategy Strategy to apply to non-pull-request events, can be always-skipped, never-skipped, or always-failed, default is always-failed true always-failed
type Type of the rule, can be labeled, commented, approved, or composite true labeled
username Username, can be a string or an array of strings separated by | false undefined
user-team User team, can be a string or an array of strings separated by | false undefined
label Label name, can be a string or an array of strings separated by | false undefined
comment-pattern Comment regex pattern, can be a string or an array of strings separated by | false undefined
composite-rule Use any, all or not to combine multiple rules, need to be a JSON string false undefined

Note

user-team needs read:org permission, but the default GITHUB_TOKEN doesn't have this permission. You need to create a personal token with read:org permission.

Contributing

Initial setup

  1. Install the dependencies:

    pnpm install
  2. Test the basic functionality:

    pnpm test
  3. Run bundle:

    pnpm bundle

Acknowledgement

ci-bypass is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.

About

Bypass CI checks for GitHub Actions
v1.1.1
Latest

ci-bypass is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.