github-actions

本文介绍了GitHubActions的工作流程,包括触发器的使用、事件配置、action市场、context上下文的作用、如何管理secrets和variables,以及Workflowcommands和actions/toolkit的工具集应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

workflow

name: {{workflow name}}
run-name: {{workflow runs name}}

on: {{触发器}} #[push]

env:
  {{定义workflow变量}}: value
  
jobs:

   {{job name}}:
    runs-on: {{运行机器}} #ubuntu-latest
    env:
      {{定义job变量}}: value
    defaults:  # set default settings
      run:  # default shell and working-directory options
        shell: bash
        working-directory: xxx
    # steps下嵌套的每个项目都是一个单独的操作或 shell 脚本。
    steps:
      - name: {{step name}}
		env:
		  {{定义step变量}}: value
		if : ${{执行条件}}
		continue-on-error: {{失败继续执行条件}}

      - name: 使用变量、context上下文
        run: $变量 , ${{ context }}

      - name: 执行action
        uses: {{action@version}}
        with:
          {{action 输入参数}}: value

      - name: 执行shell
        run: {{shell 命令}}
        shell: bash
		working-directory: {{执行目录}}

触发器

# 事件触发
on: push

# 多事件触发
on: [push, fork]

# 筛选器
on:
  push:
    branches: # 分支筛选器
      - main
      - 'releases/**'

# 手动事件触发
on:
  workflow_dispatch:
    inputs:

# 工作流可以由另一个工作流调用
on:
  workflow_call:
    inputs:

action市场

https://github.com/marketplace?type=actions


context 上下文

上下文是一种访问工作流运行、变量、运行器环境、作业及步骤相关信息的方式

在workflow 和 action 中访问 context信息

  • 使用方式
${{ <context> }}

secrets

若要在个人帐户存储库中为某个环境创建机密或变量,你必须是存储库所有者
若要在组织存储库中为某个环境创建机密或变量,你必须拥有 admin 访问权限

在这里插入图片描述

在这里插入图片描述

变量

变量在运行工作流的运行器计算机上插值。 在操作或工作流步骤中运行的命令可以创建、读取和修改变量。

  • 变量定义
    使用 env 键对其进行定义

GitHub 默认环境变量

GITHUB_ 前缀开头
https://docs.github.com/zh/actions/learn-github-actions/variables#default-environment-variables

  • GITHUB_OUTPUT

Workflow commands

作用:与运行器机器进行通信,以设置环境变量,其他操作使用的输出值,将调试消息添加到输出日志和其他任务。

使用方式:

  1. 大多数工作流程命令使用特定格式的 echo 命令
  2. 其他工作流程则通过写入文件被调用
# workflow-command 和 parameter 不区分大小写
echo "::workflow-command parameter1={data},parameter2={data}::{command value}"

actions/toolkit

workflow-command可执行 actions/toolkit的许多函数
https://github.com/actions/toolkit

  • 例:
    actions/toolkit的 @actions/core
//npm install @actions/core
const core = require('@actions/core');

core.error('Missing semicolon', {file: 'app.js', startLine: 1})

在 workflow中表示为:

run: echo "::error file=app.js,line=1::Missing semicolon"
  • 例:set-output输出
    set-output 命令已被弃用,并将很快被禁用。
echo "::set-output name=<name>::<value>"
  • 例:输出写入到 $GITHUB_OUTPUT 文件中
echo "{name}={value}" >> "$GITHUB_OUTPUT"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xyc1211

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值