当我们将一个PR合并到主分支时,如果我们在Push代码时的Action运行了CI,那么在合并时也会重复运行一次CI,这非常浪费时间和资源。 我们可以通过配置一下的操作,避免在合并时重复运行CI:
1.在一开始的job里面加一个if判断,在当前的分支中判断是否包含了"refs/pull/"字符串,如果包含,则 CI不会继续运行,我们需要在代码中进行如下配置:
if: "!github.head_ref.startsWith('refs/pull/')"
jobs: build: if: "!github.head_ref.startsWith('refs/pull/')" steps: - name: checkout uses: actions/checkout@v2 # ... deploy: needs: build if: github.ref == 'refs/heads/master' env: SKIP_CI: true steps: - name: checkout uses: actions/checkout@v2 # ... test: needs: deploy if: env.SKIP_CI != 'true' steps: - name: checkout uses: actions/checkout@v2 # ...
这样操作以后,我们就可以避免在将PR合并到master分支时重复运行CI,这样子我们利用GitHub Actions的时候可以更高效地运作我们的流程。