Github-Action-Workflow-概念和基本操作

news2024/11/26 0:23:41

workflow 文件

GitHub Actions 的配置文件叫做 workflow文件,存放在代码仓库的.github/workflows/目录下。比如写一个first.yaml文件,存储的目录就是.github/workflows/first.yaml

workflow/下的文件采用 YAML 格式,文件名可以任意取,但是后缀名统一为.yml或者yaml,比如foo.yml。一个库可以有多个 workflow 文件。GitHub 只要发现.github/workflows目录下里面有.yml文件,就会自动运行该文件。

workflow/下的文件的配置字段非常多,详见官方文档。下面是一些基本字段。

name

name字段是 workflow 的名称。如果省略该字段,默认为当前 workflow 的文件名。

name: GitHub Actions Test

on

on字段指定触发 workflow 的条件,通常是某些事件。

on: push

上面代码指定,push事件触发 workflow

on字段也可以是事件的数组。

on: [push, pull_request]

上面代码指定,push事件或pull_request事件都可以触发 workflow

完整的事件列表,请查看官方文档。除了代码库事件,GitHub Actions 也支持外部事件触发,或者定时运行。

on. .

指定触发事件时,可以限定分支或标签。

on:
  push:
    branches:
      - master

上面代码指定,只有master分支发生push事件时,才会触发 workflow

(4)jobs..name

workflow 文件的主体是jobs字段,表示要执行的一项或多项任务。

jobs字段里面,需要写出每一项任务的job_id,具体名称自定义。job_id里面的name字段是任务的说明。

jobs:
  my_first_job:
    name: My first job
  my_second_job:
    name: My second job

上面代码的jobs字段包含两项任务,job_id分别是my_first_jobmy_second_job

jobs..needs

needs字段指定当前任务的依赖关系,即运行顺序。

jobs:
  job1:
  job2:
    needs: job1
  job3:
    needs: [job1, job2]

上面代码中,job1必须先于job2完成,而job3等待job1job2的完成才能运行。因此,这个 workflow 的运行顺序依次为:job1job2job3

jobs..runs-on

runs-on字段指定运行所需要的虚拟机环境。它是必填字段。目前可用的虚拟机如下。

ubuntu-latest,ubuntu-18.04或ubuntu-16.04
windows-latest,windows-2019或windows-2016
macOS-latest或macOS-10.14

下面代码指定虚拟机环境为ubuntu-18.04。

runs-on: ubuntu-18.04

jobs..steps

steps字段指定每个 Job 的运行步骤,可以包含一个或多个步骤。每个步骤都可以指定以下三个字段。

jobs.<job_id>.steps.name:步骤名称。
jobs.<job_id>.steps.run:该步骤运行的命令或者 action。
jobs.<job_id>.steps.env:该步骤所需的环境变量。

下面是一个完整的 workflow 文件的范例。

name: Greeting from Mona
on: push

jobs:
  my-job:
    name: My Job
    runs-on: ubuntu-latest
    steps:
    - name: Print a greeting
      env:
        MY_VAR: Hi there! My name is
        FIRST_NAME: Mona
        MIDDLE_NAME: The
        LAST_NAME: Octocat
      run: |
        echo $MY_VAR $FIRST_NAME $MIDDLE_NAME $LAST_NAME.

上面代码中,steps字段只包括一个步骤。该步骤先注入四个环境变量,然后执行一条 Bash 命令,当代码push时触发这个workflow

运行测试

先来看看项目目录:

GithubActionLearn/
|-- .github
|   -- workflows
|       -- first.yaml          // yaml文件
|-- README.md
-- learn
    |-- learn_01.md
    -- learn_02.md

我们使用git把项目提交到github,看看效果

点击Actio

 可以看到All workflows里面多了一条信息,点击进入查看详细,然后再次点击 My Job

 可以看到命令已经执行成功。

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

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

相关文章

代码随想录第56天|● 583. 两个字符串的删除操作 ● 72. 编辑距离

583.两个字符串的删除操作 思路一 dp[i][j]&#xff1a;以i-1为结尾的字符串word1&#xff0c;和以j-1位结尾的字符串word2&#xff0c;想要达到相等&#xff0c;所需要删除元素的最少次数。 当word1[i - 1] 与 word2[j - 1]相同的时候 dp[i][j] dp[i - 1][j - 1];当word1[…

检修盒面板AI视觉检测系统,赋能工业发展!

制造业是中国工业化的源头&#xff0c;也是工业生产大国。任何一步的质量都可能影响生产过程的变化。表面缺陷不仅影响产品的美观和舒适性&#xff0c;还会对其性能产生不良影响。因此&#xff0c;制造商对产品的表面缺陷检测非常重视。传统的检修盒面板按钮安装是否正确的质量…

【深度学习】CNN应用于图像分类的建模全流程

文章目录1.摘要2.图片的准备及预处理3.打包并保存数据4.搭建模型5.训练模型6.测试模型7.总结1.摘要 图像分类&#xff0c;也可以称作图像识别&#xff0c;顾名思义&#xff0c;就是辨别图像中的物体属于什么类别。核心是从给定的分类集合中给图像分配一个标签的任务。实际上&a…

DBeaver连接InterSystems IRIS、Ensemble、Cache操作说明

一、驱动获取 1.1、本地安装目录获取 JDBC驱动&#xff1a;“安装目录\dev\java\lib\JDK18” 如需获取ODBC等其他连接驱动则返回“安装目录\dev”路径选择对应文件夹2.1、Intersystems官方获取 官方下载&#xff1a;https://intersystems-community.github.io/iris-driver-…

深度学习基本部件-激活函数详解

激活函数概述 前言激活函数定义激活函数性质 Sigmoid 型函数 Sigmoid 函数Tanh 函数 ReLU 函数及其变体 ReLU 函数Leaky ReLU/PReLU/ELU/Softplus 函数 Swish 函数激活函数总结参考资料 本文分析了激活函数对于神经网络的必要性&#xff0c;同时讲解了几种常见的激活函数的原理…

纸牌游戏红心大战拱猪设计(C语言)

纸牌游戏红心大战设计 ( C语言 ) 红心大战是Windows的经典游戏&#xff0c;中国式的红心是拱猪游戏&#xff0c;加入了方块J羊和梅花10 变压器&#xff08;即俗称加倍&#xff09;。加大了游戏难度和趣味性。 试制此游戏是准备编制网络版拱猪或红心大战的基础框架&#xff0c…

Linux下时间处理相关函数

Linux下时间处理相关函数 1 .系统时间和 RTC 时间 Linux 系统下包含两个时间&#xff1a; 系统时间和 RTC 时间。   系统时间&#xff1a; 是由主芯片的定时器进行维护的时间&#xff0c; 一般情况下都会选择芯片上最高精度的定时器作为系统时间的定时基准&#xff0c; 以避…

深度聚类方法之对比聚类(Contrastive Clustering,CC)

1.参考文献 《Contrastive Clustering》 2.深度聚类方法 深度聚类方法大致分为以下几类&#xff1a; ①分阶段&#xff1a;使用深度网络进行对比学习or自动编码器完成表征学习(目的&#xff1a;把同类样本集中到一起&#xff0c;拉开不同类样本的聚类)&#xff0c;然后使用聚…

【6】SCI易中期刊推荐——人工智能神经科学机器人学(中科院3区)

🚀🚀🚀NEW!!!SCI易中期刊推荐栏目来啦 ~ 📚🍀 SCI即《科学引文索引》(Science Citation Index, SCI),是1961年由美国科学信息研究所(Institute for Scientific Information, ISI)创办的文献检索工具,创始人是美国著名情报专家尤金加菲尔德(Eugene Garfield…

头条某星图 登录协议解析2023/1/9

文章目录 文章目录 文章目录前言网址加密字段请求逻辑生成s_v_web_id账号密码的加密方式fp滑块登录成功前言 可以关注我哟,一起学习,主页有更多练习例子 如果哪个练习我没有写清楚,可以留言我会补充 如果有加密的网站可以留言发给我,一起学习共享学习路程 如侵权,联系我删…

【JavaGuide面试总结】Java高级特性基础篇·下

【JavaGuide面试总结】Java高级特性基础篇下1.什么是序列化?什么是反序列化?2.序列化协议对应于 TCP/IP 4 层模型的哪一层&#xff1f;3.常见序列化协议有哪些&#xff1f;4.为什么不推荐使用 JDK 自带的序列化&#xff1f;5.如果有些字段不想进行序列化怎么办&#xff1f;6.…

梦幻西游H5私服服务端超详细图文架设教程

想体验经典Q版西游霸服高兴吗&#xff1f;想体验满级VIP的尊贵吗&#xff1f;想体验一招秒杀的痛快吗&#xff1f;各种极品配备、翅膀、宠物统统给你&#xff0c;就在梦幻西游&#xff01;本文解说梦幻西游H5游戏的架设教程&#xff0c;想钻研H5游戏如何实现&#xff0c;体验游…

基于Python实现的车辆检测计数+车牌定位+车牌识别的融合技术,使用pytorch深度学习框架

车辆检测计数车牌检测与车牌识别 介绍 基于pytorch深度学习框架&#xff0c;实用开源模型yolov4实现模板检测与yolov5实现车牌检测与LPRNet实现车牌检测 完整代码下载地址&#xff1a;基于Python实现的车辆检测计数车牌定位车牌识别的融合技术 基于win10系统&#xff0c;实用…

JSP SSM加班管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 JSP SSM加班管理系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和 数据库&#xff0c;系统主要采用B/…

python数据分析及可视化(十九)Power BI中M函数的使用、数据建模、度量值、DAX

M函数 用鼠标操作的步骤背后的逻辑都是M函数&#xff0c;在编辑器里都会有体现出来&#xff0c;选中左侧的表名称&#xff0c;点击右键&#xff0c;选择高级编辑器&#xff0c;就会进入到高级编辑器界面&#xff0c;里面会显示每一步的操作步骤。 M函数基本规范 M函数对大小写…

常用JavaScript库

1、前端工具类库 jQuery是一个快速、小型且功能丰富的 JavaScript 库&#xff0c;它使HTML文档遍历和操作、事件处理、动画和 AJAX 之类的事情变得更加简单。当时jQuery库不但简化了代码&#xff0c;而且提供出色的跨浏览器支持&#xff0c;其极大的提高了 Web 开发人员的工作效…

sqlserver连接时报错 [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序

电脑重新安装系统了&#xff0c;当我再次链接数据库时 &#xff0c;发现报错 [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序很明显是少了驱动&#xff0c;只要安装了Microsoft ODBC Driver 11 for SQL Server这个驱动就可以了。 没安装驱动…

实时性升至秒级!飞桨PaddleSpeech赋能金融双录业务走向智能化

听说IT圈十个人里有九个是男性开发者&#xff0c;女生并不多&#xff0c;陈雪儿可以算是这个群体中独特的存在。 作为杭州谐云科技有限公司&#xff08;简称谐云&#xff09;智能边缘团队的AI技术专家&#xff0c;陈雪儿带领团队历经一年半研发的“金融双录智能质检系统”&…

功率放大器怎么选择型号的(功率放大器选购技巧)

很多电子工程师虽然频繁使用功率放大器&#xff0c;但是对于功率放大器的选择和选购技巧还是不清楚&#xff0c;下面就来为大家介绍一下如何挑选合适的功率放大器型号。 一般情况下&#xff0c;功率放大器购买决策的主要考虑因素是输出功率、线性度、频率范围和VSWR失配容限。放…

网络和VPC简单介绍

网络和VPC 传统网络 传统网络从一开始就是一个分布式的网络&#xff0c;没有中心的控制节点&#xff0c;网路中的各个设备之间通过口口相传的方式学习网络的可达信息&#xff0c;由每台设备自己决定要如何转发&#xff0c;这直接导致了没有整体观念&#xff0c;不能从整个网络…