首页
/ GitHub Actions 速查清单:自动化工作流核心指南

GitHub Actions 速查清单:自动化工作流核心指南

2025-05-16 11:41:52作者:幸俭卉

GitHub Actions 是 GitHub 提供的持续集成和持续交付(CI/CD)平台,允许开发者直接在 GitHub 仓库中自动化构建、测试和部署流程。这份速查清单将帮助你快速掌握 GitHub Actions 的核心概念和常用操作。

基础概念

  1. 工作流(Workflow):自动化流程的顶层概念,由 YAML 文件定义,存储在仓库的 .github/workflows 目录中
  2. 事件(Event):触发工作流运行的特定活动,如 push、pull request 等
  3. 作业(Job):工作流中的一组步骤,在同一个运行器上执行
  4. 步骤(Step):作业中的单个任务,可以运行命令或执行操作
  5. 操作(Action):可重用的代码单元,用于简化工作流创建

常用事件触发器

on:
  # 推送到特定分支时触发
  push:
    branches: [ "main" ]
  
  # 创建 pull request 时触发
  pull_request:
    branches: [ "main" ]
  
  # 定时触发
  schedule:
    - cron: '0 0 * * *'
  
  # 手动触发
  workflow_dispatch:

核心语法结构

name: 工作流名称

on: [事件]

jobs:
  作业ID:
    runs-on: 运行环境
    steps:
      - name: 步骤名称
        uses: 操作名称@版本
        with:
          参数名: 参数值

常用运行环境

  • ubuntu-latest:最新版 Ubuntu
  • windows-latest:最新版 Windows
  • macos-latest:最新版 macOS
  • self-hosted:自托管运行器

实用操作示例

  1. 检出代码
- uses: actions/checkout@v3
  1. 设置 Node.js 环境
- uses: actions/setup-node@v3
  with:
    node-version: '16'
  1. 缓存依赖
- uses: actions/cache@v3
  with:
    path: node_modules
    key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
  1. 运行测试
- run: npm test

环境变量与密钥管理

env:
  NODE_ENV: production

steps:
  - name: 使用环境变量
    run: echo $NODE_ENV
    
  - name: 使用密钥
    run: echo ${{ secrets.API_KEY }}

矩阵策略

jobs:
  build:
    strategy:
      matrix:
        node-version: [12.x, 14.x, 16.x]
        os: [ubuntu-latest, windows-latest]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.node-version }}

条件执行

steps:
  - name: 仅在主分支运行
    if: github.ref == 'refs/heads/main'
    run: echo "这是主分支"

工作流间通信

# 发送方
- name: 上传数据
  uses: actions/upload-artifact@v3
  with:
    name: shared-data
    path: data.json

# 接收方
- name: 下载数据
  uses: actions/download-artifact@v3
  with:
    name: shared-data

最佳实践

  1. 为工作流和步骤使用有意义的名称
  2. 将复杂逻辑封装为自定义操作
  3. 使用缓存加速构建过程
  4. 合理设置超时时间
  5. 定期更新使用的操作版本
  6. 使用工作流状态徽章展示构建状态

通过掌握这些核心概念和常用操作,你可以高效地利用 GitHub Actions 自动化你的开发流程,提升团队协作效率。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
22
6
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
897
533
KonadoKonado
Konado是一个对话创建工具,提供多种对话模板以及对话管理器,可以快速创建对话游戏,也可以嵌入各类游戏的对话场景
GDScript
21
13
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
7
0
note-gennote-gen
一款跨平台的 Markdown AI 笔记软件,致力于使用 AI 建立记录和写作的桥梁。
TSX
85
4
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
374
387
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.09 K
0
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
94
15
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
626
60
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
402
378