文章

来用GitHub Actions替代繁琐的工作流吧

前言

在现代软件开发中,自动化是提高效率和减少错误的关键。GitHub Actions 是一个强大的持续集成和持续交付(CI/CD)平台,允许开发者在GitHub上自动化各种任务。本文将介绍GitHub Actions的基本功能,并展示如何使用workflows进行自动化作业。

什么是GitHub Actions?

GitHub Actions 是一个内置于GitHub的CI/CD平台,允许你在代码库中定义自动化工作流。通过编写简单的YAML文件,你可以在特定事件(如代码推送、拉取请求、定时任务等)发生时自动执行任务。

GitHub Actions的主要功能

  • 持续集成(CI):自动化构建和测试代码,确保每次提交都不会破坏现有功能。
  • 持续交付(CD):自动化部署过程,将代码部署到生产环境或其他目标环境。
  • 自动化任务:执行各种自动化任务,如代码格式化、依赖更新、通知发送等。
  • 定时任务:通过cron表达式设置定时任务,定期执行特定操作。

使用GitHub Actions进行自动化作业

创建一个简单的工作流

以下是一个简单的GitHub Actions工作流示例,它将在每次代码推送到主分支时运行,并执行一些基本的任务。

  1. 在你的GitHub仓库中,创建一个名为 .github/workflows 的目录。
  2. 在该目录中创建一个名为 main.yml 的文件,并添加以下内容:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    
     name: CI
    
     on:
       push:
         branches:
           - main
    
     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
    

解释工作流文件

  • name: 工作流的名称。
  • on: 定义触发工作流的事件。在这个例子中,工作流将在代码推送到主分支时触发。
  • jobs: 定义工作流中的一个或多个任务。
    • build: 任务的名称。
    • runs-on: 指定运行任务的环境。在这个例子中,任务将在最新的Ubuntu环境中运行。
    • steps: 定义任务中的步骤。
      • name: 步骤的名称。
      • uses: 使用预定义的GitHub Actions。
      • run: 运行特定的命令。

使用定时任务

你还可以使用cron表达式设置定时任务。例如,以下工作流将在每天的UTC时间0点运行:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
name: Daily Task

on:
  schedule:
    - cron: '0 0 * * *'

jobs:
  daily-task:
    runs-on: ubuntu-latest

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

    - name: Run a script
      run: echo "This is a daily task running at UTC 0:00"

使用Secrets管理敏感信息

GitHub Actions允许你使用Secrets来管理敏感信息,如API密钥、密码等。你可以在GitHub仓库的Settings -> Secrets and variables -> Actions中添加Secrets,然后在工作流中使用它们。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
name: Use Secrets

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

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

    - name: Use secret
      run: echo "My secret is $"

引流

相信聪明的你通过学习上述内容,一定知道了GitHub Actions的强大功能,因此我们可以借助他的强大功能来帮助我们完成日常中的一些琐事,比如各大论坛的签到功能亦或是代码的自动编译

我这边就做了一个简单的例子,是MUA皮肤站的签到,可以通过看这个来学习GitHub Actions和简单的爬虫知识,然后再动手做到其他的自动化脚本

另外顺带一提 我的博客也是通过GitHub Actions自动编译md文件部署到网页上面的

本文由作者按照 CC BY 4.0 进行授权