Github Actions 作业被跳过

标签 github continuous-integration github-actions

将 Github Actions 用于某些 CI/CD。
目前,我遇到了奇怪的行为,尽管满足了条件,但我的工作却被跳过了。 deploy-api有两个条件,如果代码被推送到 master 和 test-api是成功的。但即使我们满足这些条件,它仍然被跳过。

jobs:
  test-api:
    name: Run tests on API
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v1
      - name: Get dependencies
        run: npm install
        working-directory: ./api
      - name: Run tests
        run: npm run test
        working-directory: ./api

  deploy-api:
    needs: test-api # other job must finish
    if: github.ref == 'refs/heads/master' && needs.test-api.status == 'success' #only run if it's a commit to master AND previous success
enter image description here
如图所示,尽管推送是在主分支上(如顶部所示)并且前一个工作成功,但第二个工作被跳过。
我在代码中遗漏了什么吗?有谁知道可以使用的解决方法?
如果 UI 告诉用户它被跳过的原因,那就太好了!

最佳答案

使用 needs.test-api.result == 'success' (没有 .status )在 if 中表达。
https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#needs-context .

关于Github Actions 作业被跳过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66129469/

相关文章:

github 如何在我的 mac 上删除旧的 ssh key ?

git - 撤消对远程分支的最新推送

file - "git add ."错误致命权限被拒绝

continuous-integration - 是否可以将 Chutzpah 与 Jenkins 一起使用?

svn - 持续集成颠覆

docker - 在 Github 操作和查询中设置 Cassandra 容器

github - 为什么 Github 操作通过创建临时 URL 来休息 API 下载工件?

github - github 有多少个用户限制搜索?

java - Maven 无法拉取对 travis-ci : Connection timed out 的依赖

github - 使用 GitHub Actions 创建标签而不是发布