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

想要设置 Action 不在 Fork 的仓库执行,只需要添加 if 判断,判断当前执行的仓库和设置的相同,即可执行,否则不执行

在 GitHub 的 Action 的判断使用 if 方法,条件可以是判断 repositoryrepository_owner 的内容

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

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

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

判断不仅可以放在步骤里面,还可以写在 job 里面,让整个 job 都需要通过某个条件

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

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

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

    if: github.repository_owner == 'lindexi'

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

如果自己只是 fork 对方的仓库,改不动对方的代码,可以自己禁用 Action 请看 GitHub 的 Action 如何禁用

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

Context and expression syntax for GitHub Actions - GitHub Help

GitHub 的 Action 判断仅在主仓库才执行脚本的更多相关文章

  1. 再探CI,Github调戏Action手记——自动构建并发布到另一仓库

    前言 接上文初探CI,Github调戏Action手记--自动构建并发布 在学习了Action的基本操作之后 接着我们来探索Action其他可能的功能 众所周知 只有用得到的技术学习的才会最快 我也是 ...

  2. 初探CI,Github调戏Action手记——自动构建并发布

    前言 最近在做脚本的说明文档时使用了vuepress这个东西 前端实在是菜,只能随便写写了 正常写完md文件之后推送至github做版本控制 而前端页面的生成则是在本地,部署也是在本地手工进行 一套下 ...

  3. Linux centosVMware 自动化运维Ansible介绍、Ansible安装、远程执行命令、拷贝文件或者目录、远程执行脚本、管理任务计划、安装rpm包/管理服务、 playbook的使用、 playbook中的循环、 playbook中的条件判断、 playbook中的handlers、playbook实战-nginx安装、管理配置文件

    一.Ansible介绍 不需要安装客户端,通过sshd去通信 基于模块工作,模块可以由任何语言开发 不仅支持命令行使用模块,也支持编写yaml格式的playbook,易于编写和阅读 安装十分简单,ce ...

  4. 边缘节点 如何判断CDN的预热任务是否执行完成刷新 路由追踪 近期最少使用算法

    阿里云内容分发网络(Content Delivery Network,简称CDN)是建立并覆盖在承载网之上,由分布在不同区域的边缘节点服务器群组成的分布式网络.阿里云CDN分担源站压力,避免网络拥塞, ...

  5. 6.3.28微信需群主确认才可进群&发GIF动图功能内测开始了

    昨天下午有网友收到微信6.3.28新版内测邀请,不过这个内部体验目前貌似只对安卓手机开放,苹果的IOS系统还不支持,会提示“你当前使用的是非安卓设备,不建议下载安卓体验包,但你仍可邀请朋友尝鲜”.最新 ...

  6. 使用定时器判断确保某个标签有值才执行方法, 控制js代码执行先后顺序

    使用定时器判断确保某个标签有值才执行方法: var wait = setInterval(function(){ var diqu = $("#diqu").val(); //确保 ...

  7. Java如何判断线程池所有任务是否执行完毕

    import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Tes ...

  8. MHA 一主两从搭建-脚本VIP-自动切换

    环境介绍:主机名 IP MHA角色 MySQL角色node1 192.168.56.26 Node MySQL Master node2 192.168.56.27 Node MySQL Master ...

  9. JS流程控制语句 做判断(if语句)if语句是基于条件成立才执行相应代码时使用的语句。语法:if(条件) { 条件成立时执行代码}

    做判断(if语句) if语句是基于条件成立才执行相应代码时使用的语句. 语法: if(条件) { 条件成立时执行代码} 注意:if小写,大写字母(IF)会出错! 假设你应聘web前端技术开发岗位,如果 ...

  10. 通过java程序(JSch)运行远程linux主机上的shell脚本

    如果您看完文章之后,觉得对您有帮助,请帮我点个赞,您的支持是我不竭的创作动力! 如果您看完文章之后,觉得对您有帮助,请帮我点个赞,您的支持是我不竭的创作动力! 如果您看完文章之后,觉得对您有帮助,请帮 ...

随机推荐

  1. QGIS中下载遥感影像的Python代码片段

    1. 引言 QGIS是开源免费且好用的GIS软件,并且可以使用Python脚本来控制 这里主要使用的打开QGIS时启动内置的Python解释器,这个Python解释器可以访问iface接口从而实现对Q ...

  2. 记录--基于css3写出的流光登录(注释超详细!)

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 完整效果 对基本的表单样式进行设置 这里设置了基本的表单样式,外层用了div进行包裹,重点是运用了两个i元素在后期通过css样式勾画出一条 ...

  3. 基础教材系列:Linux原理《趣谈linux》极客时间笔记

    1.电脑一通电,先运行主板上ROM(只读存储器)里写死的程序BIOS,BIOS去找要运行什么操作系统,运行操作系统的第一段代码,创建0号进程,它是这次开机所有进程的爹, 2.然后操作系统代码里先初始化 ...

  4. GFLV2:边界框不确定性的进一步融合,提点神器 | CVPR 2021

      GFLV2基于GFLV1的bbox分布进行改进,将分布的统计信息融入到定位质量估计中,整体思想十分创新和完备,从实验结果来看,效果还是挺不错的 来源:晓飞的算法工程笔记 公众号 论文: Gener ...

  5. KingbaseES 复制冲突之锁类型冲突

    背景 昨天遇到客户现场的一个有关复制冲突的问题 备库报错:ERROR: canceling statement due to conflict with recovery,user was holdi ...

  6. CSP 2021 入门级

    CSP 2021 入门级(DONE) 1.C 语言不支持面向对象. 2.计算机界的最高奖项"图灵奖"以英国的阿兰·艾伦·图灵命名,被称为"计算机界的诺贝尔奖". ...

  7. Docker容器编排技术解析与实践

    本文全面探索了容器编排技术的核心概念.工具和高级应用,包括Docker Compose.Kubernetes等主要平台及其高级功能如网络和存储管理.监控.安全等.此外,文章还探讨了这些技术在实际应用中 ...

  8. #分治 or 线段树+单调栈#CF526F Pudding Monsters

    题目 给定一个 \(n \times n\) 的棋盘,其中有 \(n\) 个棋子,每行每列恰好有一个棋子. 求有多少个 \(k \times k\) 的子棋盘中恰好有 \(k\) 个棋子. 分析 先将 ...

  9. #Tarjan#洛谷 4819 [中山市选]杀人游戏

    题目 分析 缩点后显然只考虑入度为0的点的个数, 但是问题是如果有一个入度为0的点缩点前只有1个点 且它的出边上的所有点都可以被其它入度为0的点遍历, 那么可以将其它点全部排除后剩下的这个点就是凶手, ...

  10. 使用OHOS SDK构建googletest

    参照OHOS IDE和SDK的安装方法配置好开发环境. 从github下载源码. 执行如下命令: git clone --depth=1 https://github.com/google/googl ...