首页 > 解决方案 > ci工作流文件出错时如何拒绝git push?

问题描述

我有一个用于 github 操作的 yaml 文件:

name : "Integration"

on :
 push :
  branches : [master]

jobs :
    test-code : 
       runs-on : ubuntu-latest
       steps : 
         - uses : actions/checkout@v2
         - uses : actions/setup-node@v1
         - run : npm run test
         - run : npm run build

我想运行测试然后构建,如果没有错误,推送到 github repo。

如果测试代码操作通过,我如何才能推送到 github 存储库?

标签: gitgithubcontinuous-integrationcontinuous-deployment

解决方案


GitHub 只知道推送到存储库的代码。它无法验证仅在您的本地副本上可用的任何内容。

仅在 GitHub 存储库中可用的代码(即推送到那里的代码)上调用该操作。

换句话说,完全按照您的意愿去做是不可能的。

pre-receive您可以在使用钩子(如钩子)接受推送之前进行一些验证,但这不如操作那么健壮。

我会说您正在寻找的是工作流程,该工作流程假定仅当在分支上执行的 GitHub 操作成功完成时才接受合并请求/拉取请求。


推荐阅读