GitHub 的 Action 判断仅在主仓库才执行脚本

我有一个 GitHub 项目,这个项目配置了仅须要在源仓库才能执行的 Action 如推送 NuGet 等发布动做。如何在 Action 里面设置让 Fork 的仓库不执行 Action 的步骤html

想要设置 Action 不在 Fork 的仓库执行,只须要添加 if 判断,判断当前执行的仓库和设置的相同,便可执行,不然不执行git

在 GitHub 的 Action 的判断使用 if 方法,条件能够是判断 repositoryrepository_owner 的内容github

如使用下面代码判断,让构建步骤仅在 lindexi/doubi 仓库执行express

- name: Build with dotnet
      run: dotnet build --configuration Release
      if: github.repository == 'lindexi/doubi'

上面的 lindexi/doubi 的意思就是 用户名或组织名/项目名 这就会跟随用户的 Fork 仓库修改值。也就是小伙伴 frendguo 他 fork 了个人仓库,那么在他仓库里面执行的 action 拿到的 github.repository 的值是 frendguo/doubi 也就是判断逻辑不经过windows

判断不只能够放在步骤里面,还能够写在 job 里面,让整个 job 都须要经过某个条件post

jobs:
  build:
    runs-on: windows-latest
    if: github.repository == 'lindexi/doubi'

上面代码设置了只有在 lindexi 的 doubi 仓库才进行 build 这个 job 内容ui

固然上面代码写起来是针对仓库,不利于相同的一个组织内的复制粘贴代码。也就是我将代码粘贴到相同的组织里面的另外一个仓库,能够看到另外一个仓库是跑不起来的,由于仓库名不相同,此时能够尝试使用 repository_owner 这个值替换,请看代码code

if: github.repository_owner == 'lindexi'

上面代码判断的是只要拥有者是 lindexi 就执行。这里的 repository_owner 的值能够是用户也能够是组织,具体和仓库所在的拥有者相关htm

若是本身只是 fork 对方的仓库,改不动对方的代码,能够本身禁用 Action 请看 GitHub 的 Action 如何禁用blog

更多请看 GitHub 操做的工做流程语法 - GitHub 帮助

Context and expression syntax for GitHub Actions - GitHub Help

相关文章
相关标签/搜索