github 的 action的解释用法(通俗易懂不废话)

github 文章 2024-07-11 17:29 95 0 全屏看文

AI助手支持GPT4.0

image.png

今天看到一个觉得很6的github,他会及时的将v2ex的热门文章更新到readme.md离。

https://github.com/lonnyzhang423/v2ex-hot-hub

于是乎,我就发到群里,群里的大佬对我进行了耐的教育。

image.png

然后就有了我要研究action的想法。 下面就不废话了,直接上正文了。

GitHub Actions 是 GitHub 提供的持续集成和持续部署(CI/CD)服务,能够帮助自动化软件开发流程。它允许你定义一个工作流,在特定的事件发生时自动执行一系列任务。以下是 GitHub Actions 的基本用法:

基本概念

  1. 工作流 (Workflow):自动化流程的核心单元。工作流文件是一个以 .yml.yaml 结尾的 YAML 文件,通常放置在 .github/workflows/ 目录中。

  2. 事件 (Event):触发工作流的特定活动,如代码推送、拉取请求、计划任务等。

  3. 作业 (Job):工作流中的一个步骤集。一个工作流可以包含多个作业,这些作业可以并行或顺序执行。

  4. 步骤 (Step):作业中的一个单元操作,可以是执行命令或运行操作。

  5. 操作 (Action):复用步骤的单元,可以是社区共享的也可以是自己定义的。

使用步骤

1. 创建工作流文件

在你的 GitHub 仓库中创建 .github/workflows 目录,然后在该目录下创建一个 .yml 文件,例如 ci.yml

name: CIon: [push, pull_request]jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout repository
      uses: actions/checkout@v2

    - name: Set up Node.js
      uses: actions/setup-node@v2
      with:
        node-version: '14'

    - name: Install dependencies
      run: npm install

    - name: Run tests
      run: npm test

2. 定义触发事件

在上面的例子中,on: [push, pull_request] 表示当代码推送或拉取请求时触发工作流。

3. 配置作业和步骤

工作流中定义了一个名为 build 的作业,该作业运行在最新的 Ubuntu 环境 (runs-on: ubuntu-latest) 上。

4. 使用操作

步骤 steps 中,使用了两个现成的操作 (actions/checkout@v2actions/setup-node@v2),以及两个自定义步骤 (npm installnpm test)。

高级功能

1. 并行和依赖关系

你可以定义多个作业并指定它们之间的依赖关系:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - run: npm install
    - run: npm test

  deploy:
    runs-on: ubuntu-latest
    needs: build
    steps:
    - run: echo "Deploying application..."

2. 使用秘密和变量

在 GitHub 仓库的设置中,你可以添加秘密(如 API 密钥),在工作流中可以这样使用:

steps:- name: Deploy
  run: echo "Deploying..."
  env:
    API_KEY: ${{ secrets.API_KEY }}

3. 计划任务

你可以使用 cron 表达式来定期触发工作流:

on:
  schedule:
    - cron: '0 0 * * *'  # 每天午夜触发

总结

GitHub Actions 是一个强大且灵活的工具,能大大简化和自动化软件开发的多个环节。通过定义工作流文件,你可以轻松实现自动化构建、测试和部署等操作,提高开发效率和代码质量。


-EOF-

AI助手支持GPT4.0