GitHub Actions 手动触发方式

news2024/11/18 3:24:46

目录

前言

Star

Webhook

手动触发按钮


前言

  • GitHub Ac­tions 是 Mi­crosoft 收购 GitHub 后推荐的一款 CI/​CD 工具
  • 早期可能是处于初级开发阶段,它的功能非常原生,甚至没有直接提供一个手动触发按钮
  • 一般的触发方式为代码变动(push 、pull_request),发布文件(release)或者定时(schedule)等
  • 这些属于自动触发方式
  • 如果我们需要在 GitHub 仓库没有任何变动的情况下手动触发就需要使用一些奇技淫巧
  • 经历了漫长的功能迭代,官方最终正式带来了手动触发按钮功能

Star

  • 这种触发方式,点击仓库上的 Star 按钮即可触发 GitHub Ac­tions 的工作流程
  • 这是最容易实现的方式,只要 work­flow 文件中存在如下字段:
  • 为了避免被其他人点击 Star 导致的不必要的麻烦
  • 还需要在 work­flow 文件中加上 if: github.event.repository.owner.id == github.event.sender.id 字段
  • 这样只有仓库所有者,也就是你自己点 Star 才有效
  • 点击 Star 触发方式的 work­flow 文件示例:
  • 虽然其他人点击不再会触发,但是在 Ac­tions 页面还是会出现一个记录,所以这种手动触发方式并不完美
  • 对于比较大的项目仓库使用可能会因为 Star 太多导致产生很多无意义的 Ac­tions 记录从而影响正常查看 Ac­tions 记录
  • 所以这种方式只适合私有仓库、公开的测试仓库或者不起眼的小项目仓库

Webhook

  • 给 GitHub API 发送一个 repository dispatch event(仓库调度事件) 请求,当API接收到请求后就会触发相应的 workflow
  • Web­hook 方式灵活多变,可控性强,对于高阶用户来说是一个利器
  • 甚至可以自己写一个触发脚本、网页或者浏览器插件来实现更高级的功能
  • 创建 token
  • 首先需要创建 Personal access token,权限为 repo 即可
  • 如果你不知道怎么做,可以查看官方文档中的相关介绍
  • to­ken 会用在 web­hook 的请求标头中,用于身份验证
  • 编写 Workflow 文件
  • 在 work­flow 文件中设置 repository_dispatch 触发事件,以便 GitHub Ac­tions 能接收这个触发事件
  • 这是一个最简单的 Work­flow 文件示例:
  • 发送请求
  • 通过 web­hook 来触发 GitHub Ac­tions,以下是一个使用 cURL 发送请求的例子:
  • 需要要替换的值:
  • :owner - 用户名
  • :repo - 需要触发的 Github Action 所在的仓库名称
  • ACTIONS_TRIGGER_TOKEN - 带有 repo 权限的 Personal access token
  • TRIGGER_KEYWORDS - 自定义 Webhook 事件名称,可以为任意值,Actions 列表中会显示此名称,更多信息请参见下文
  • 进阶使用
  • 在 web­hook 请求中需要发送一个 event_type 属性的 json 有效负载
  • 前面例子中的 TRIGGER_KEYWORDS 就是所发送的有效负载,官方将它称之为 “自定义 Web­hook 事件名称”
  • 为了方便理解下文将它称之为 “触发关键词”
  • 因为没有做任何限制设置,所以可以为任意值,这是最基础的使用方式
  • 有时一个仓库可能不止一个 work­flow ,所以我们就可能需要对触发关键词进行限制
  • 使用不同的关键词来触发不同的 work­flow
  • 设置 repository_dispatch 下的 types 字段的值可以限制触发关键词
  • 下面的例子将设置 helloworld 这个触发关键词,只有当请求中的关键词为 helloworld 才会触发:
  • 还可以给每一个步骤设置运行条件,在运行条件中 github.event.action 等于触发关键词
  • 通过判断给定的值是否与 github.event.action 相同来判断该步骤是否需要执行
  • 比如下面例子中只有当触发关键词为 helloworld 时才会执行这个步骤:
  • 触发关键词也可以是多个,比如像下面这个例子:
  • 当触发关键词为 helloworld 时,只有 Hello World 步骤会运行
  • 当触发关键词为 test 时,只有 TEST 步骤会运行
  • 当触发关键词为 none 时,虽然 Ac­tions 会触发,但没有步骤运行
  • 而发送其他关键词并不会触发这个 work­flow

手动触发按钮

  • 在时隔多年后 GitHub Ac­tions 终于引入了一个手动触发的按钮
  • 不过默认是不开启的,需要在 work­flow 文件中设置 workflow_dispatch 触发事件
  • 一个最简单的例子:
  • 设置好触发事件后就能在相关 work­flow 的页面下看到 Run workflow 按钮
  • 更复杂一点还可以实现在手动触发时填写参数,控制不同的工作流程或者直接改写某个环境变量等操作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1657942.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux网络-PXE高效批量网络装机(命令+截图详细版)

目录 一.部署PXE远程安装服务 1.PXE概述 1.1.PXE批量部署的优点 1.2.要搭建PXE网络体系的前提条件 2.搭建PXE远程安装服务器 2.1.修改相关网络配置(仅主机模式) 2.2.关闭防火墙(老规矩) 2.3.保证挂载上 2.4.准备好配置文…

如何使用IntelliJ IDEA SSH连接本地Linux服务器远程开发

文章目录 1. 检查Linux SSH服务2. 本地连接测试3. Linux 安装Cpolar4. 创建远程连接公网地址5. 公网远程连接测试6. 固定连接公网地址7. 固定地址连接测试 本文主要介绍如何在IDEA中设置远程连接服务器开发环境,并结合Cpolar内网穿透工具实现无公网远程连接&#xf…

【面经】网络

了解TCP/IP协议,了解常用的网络协议:study-area 一、TCP/IP协议 TCP/IP协议是一组网络通信协议,旨在实现不同计算机之间的信息传输。 1、TCP/IP四层模型: 网络接口层、网络层、传输层和应用层。 网络接口层:定义了数据的格式和…

C++ 基础 输入输出

一 C 的基本IO 系统中的预定义流对象cin和cout: 输入流:cin处理标准输入,即键盘输入; 输出流:cout处理标准输出,即屏幕输出; 流:从某种IO设备上读入或写出的字符系列 使用cin、cout这两个流对…

【springboot基础】如何搭建一个web项目?

正在学习springboot,还是小白,今天分享一下如何搭建一个简单的springboot的web项目,只要写一个类就能实现最基础的前后端交互,实现web版helloworld ,哈哈,虽然十分简陋,但也希望对你理解web运作…

车载测试系列:车载蓝牙测试(三)

HFP测试内容与测试方法 2.3 接听来电:测试手机来电时,能否从车载蓝牙设备和手机侧正常接听】拒接、通话是否正常。 1、预置条件:待测手机与车载车载设备处于连接状态 2、测试步骤: 1)用辅助测试机拨打待测手机&…

【JavaWeb】Servlet+JSP+EL表达式+JSTL标签库+Filter过滤器+Listener监听器

需要提前准备了哪些技术,接下来的课才能听懂? JavaSE(Java语言的标准版,Java提供的最基本的类库) Java的开发环境搭建Java的基础语法Java的面向对象数组常用类异常集合多线程IO流反射机制注解Annotation… MySQL&…

CUDA流和事件

CUDA通过流来实现网格级并发。 流和事件 CUDA流是一系列异步的CUDA操作,这些操作按照主机代码确定的顺序在设备上执行。流可以封装这些操作,保持操作的顺序,允许操作在流中排队,并使他们在先前的所有操作之后执行。 这些操作包…

【Linux】在Linux中执行命令ifconfig, 报错-bash:ifconfig: command not found解决方案

一、报错信息 ifconfig 报错-bash:ifconfig: command not found 同时,通过ip addr查看,也看不到IP信息 二、解决方案 找到ifcfg-ens0文件,此文件的目录在/etc/sysconfig/network-scripts目录下 命令:cd /etc/sysconfig/network…

Windows系统本地部署DrawDB数据库设计工具并实现无公网IP远程访问

文章目录 1. Windows本地部署DrawDB2. 安装Cpolar内网穿透3. 实现公网访问DrawDB4. 固定DrawDB公网地址 开发中很多时候都会使用到数据库,所以选择一个好用的数据库设计工具会让工作效率翻倍。在当今数字化时代,数据库管理是许多企业和个人项目的核心。设…

buuctf-misc题目练习二

ningen 打开题目后是一张图片,放进winhex里面 发现PK,PK是压缩包ZIP 文件的文件头,下一步是想办法进行分离 Foremost可以依据文件内的文件头和文件尾对一个文件进行分离,或者识别当前的文件是什么文件。比如拓展名被删除、被附加…

Spring - 9 ( 10000 字 Spring 入门级教程 )

一: MyBatis XML 配置文件 Mybatis 的开发有两种方式: 注解XML 我们已经学习了注解的方式, 接下来我们学习 XML 的方式 MyBatis XML 的方式需要以下两步: 配置数据库连接字符串和 MyBatis写持久层代码 1.1 配置连接字符串和 MyBatis 此步骤需要进…

【经验分享】企业网站建设,不收录的原因有哪些

今天来聊一聊我们做好网站,但是网站排名不高,各大搜索引擎不收录网站的原因: 1.网站结构问题: 公司网站的结构是搜索引擎判断网站内容的关键因素之一。如果网站结构混乱、不清晰,搜索引擎可能难以准确抓取和理解网站的…

汇编--栈和寄存器

栈 栈是一种运算受限的线性表,其限定仅在表尾进行插入和删除操作的线性表,表尾也被叫做栈顶。简单概括就是我们对于元素的操作只能够在栈顶进行,也造就了其先进后出的结构特性。 栈 这种内存空间其实本质上有两种操作:将数据放入…

新款iPad Pro引领AI新纪元:M4芯片揭幕,每秒38万亿次运算惊艳业界

新款iPad Pro搭载了强大的M4芯片,拥有每秒高达38万亿次运算的神经处理单元,AI性能超越当今的AI PC。其外观设计更加接近笔记本电脑,展示了苹果对AI技术的全面拥抱。此次发布不仅是对iPad Pro的一次重大更新,更是为下个月的WWDC发布…

00后抛弃新氧、上游抗议低价,金星又被打脸了

作为“颜值焦虑”的受益者,新氧也面临自己的焦虑。 据新氧最近发布的年报,2023年营收14.98亿元,同比增长19.1%;净利2130万元,同比扭亏为盈。但是,这仅是源于2022年公司业绩的低基数对比,并不能…

Faiss核心解析:提升推荐系统的利器【AI写作免费】

首先,这篇文章是基于笔尖AI写作进行文章创作的,喜欢的宝子,也可以去体验下,解放双手,上班直接摸鱼~ 按照惯例,先介绍下这款笔尖AI写作,宝子也可以直接下滑跳过看正文~ 笔尖Ai写作:…

QT---day4事件

1、思维导图 2、 头文件 #ifndef MYWIDGET_H #define MYWIDGET_H #include <QWidget> #include<QIcon> //图标类 #include<QLabel> //标签类 #include<QMovie> //动图类 #include<QLineEdit> //行编辑器类 #include<QPushButton> //按钮…

MATLAB 自定义实现点云随机抽稀方法(66)

MATLAB 自定义实现点云随机抽稀方法(66) 一、算法介绍二、算法实现1.代码2.结果三、数据链接一、算法介绍 MATLAB虽然提供了点云随机抽稀的内置函数,但是我们也可以自己实现这个功能,有助于理解,下面是具体的实现效果和代码(直接复制粘贴即可使用): 使用提供的数据直接…

企业计算机服务器中了rmallox勒索病毒怎么破解,rmallox勒索病毒解密工具步骤

科技技术的发展&#xff0c;为企业的生产运营注入了新的活力&#xff0c;越来越多的企业利用网络走向了数字化办公模式&#xff0c;网络也极大地方便了企业的生产运营&#xff0c;大大提高了企业的生产效率&#xff0c;加快了企业发展的步伐。但是网络数据安全问题一直是企业关…