GitHub Actions详解,面试必问

GitHub Actions 指南

GitHub Actions使你可以直接在你的GitHub库中创建自定义的工作流,工作流指的就是自动化的流程,比如构建、测试、打包、发布、部署等等,也就是说你可以直接进行 CI(持续集成)和 CD(持续部署)。

基本概念

(1)workflow: 一个 workflow 工作流就是一个完整的过程,每个workflow 包含一组 jobs任务。

(2)job : jobs任务包含一个或多个job ,每个 job包含一系列的 steps 步骤。

(3)step : 每个 step 步骤可以执行指令或者使用一个 action 动作。

(4)action : 每个 action 动作就是一个通用的基本单元。

配置 workflow

workflow必须存储在你的项目库根路径下的 .github/workflows 目录中,每一个 workflow对应一个具体的.yml 文件(或者 .yaml)。

workflow 示例:

name:GreetEveryone
# This workflow is triggered on pushes to the repository.
on: [push]
jobs:
your_job_id:
# Job name is Greeting
name: Greeting
# This job runs on Linux
runs-on: ubuntu-latest
steps:
# This step uses GitHub's hello-world-javascript-action: https://github.com/actions/hello-world-javascript-action
- name: Hello world
uses: actions/hello-world-javascript-action@v1
with:
who-to-greet: 'Mona the Octocat'
id: hello
# This step prints an output (time) from the previous step's action.
- name: Echo the greeting's time
run: echo 'The time was ${
   {
    steps.hello.outputs.time }}.

说明:
(1)最外层的 name 指定了 workflow的名称。

(2)on 声明了一旦发生了 push 操作就会触发这个 workflow

(3)jobs定义了任务集,其中可以有一个或多个job 任务,示例中只有一个。

(4)runs-on 声明了运行的环境。

(5)steps定义需要执行哪些步骤。

(6)每个 step可以定义自己的 nameid,通过 uses 可以声明使用一个具体的 action,通过run 声明需要执行哪些指令。

(7)${ {}}可以使用上下文参数。

上述示例可以抽象为:

name: <workflow name>
on: <events that trigger workflows>
jobs:
<job_id>:
name: <job_name>
runs-on: <runner>
steps:
- name: <step_name>
uses: <action>
with:
<parameter_name>: <parameter_value>
id: <step_id>
- name: <step_name>
run: <commands>

on

on声明了何时触发 workflow ,它可以是:

(1)一个或多个GitHub 事件,比如 ush 了一个 commit、创建了一个issue、产生了一次pull`` request 等等,示例:

on:[push,pull_request]

(2)预定的时间,示例(每天零点零分触发):

on:
	schedule:
		-cron:
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值