GitHub Action本地调试工具

13 min read

GitHub Action本地调试工具

act是一个工具,它提供了一个简洁的GitHub Action本地运行环境,你可以在不提交代码的情况下测试和运行你的Action。

act安装步骤

  1. 安装Docker,如果你还没有安装的话。你可以下载适合你的操作系统的Docker Desktop。
  2. 安装act。你可以通过在终端中运行以下命令来安装:
sudo curl <https://raw.githubusercontent.com/nektos/act/master/install.sh> | sudo bash

或者使用Homebrew:

brew install act

现在你已经安装好了act,可以在你的GitHub Action仓库中使用它了。

GitHub Action的简单示例脚本

下面是一个在本地使用act测试GitHub Action的简单示例脚本:

# npm-publish.yml
name: Node.js Package

on:
  release:
    types: [created]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 16
      - run: yarn install --immutable
      - run: yarn run rollup
      - uses: actions/upload-artifact@v3
        with:
          name: build-result
          path: build

  publish-npm:
    needs: build
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 16
          registry-url: https://registry.npmjs.org/
      - uses: actions/download-artifact@v3
        with:
          name: build-result
          path: build
      - run: yarn publish --access=public
        env:
          NODE_AUTH_TOKEN: ${{secrets.npm_token}}

上述脚本是一个使用GitHub Action自动将Node.js包发布到npm上的示例。它定义了一个名为Node.js Package的工作流程,并在release事件触发时运行它。

该工作流程包括两个作业:buildpublish-npm。第一个作业使用ubuntu-latest操作系统运行,它检出代码,设置Node.js环境,安装依赖项,构建代码,然后将构建结果上传为artifact。

第二个作业需要等待第一个作业完成后才能运行。它同样使用ubuntu-latest操作系统运行,检出代码,设置Node.js环境,下载构建结果artifact,然后将包发布到npm上。

模拟GitHub Action运行环境

要使用act -n命令运行dry run以确定要运行的任务。这将模拟GitHub Action运行环境并显示要运行的操作。例如,要在本地运行上述示例脚本并查看要运行的操作,可以在终端中运行以下命令:

act -n -W . -j publish-npm

该命令将模拟publish-npm作业的运行,并显示要运行的操作。注意,-W标志指定工作目录,而-j标志指定要运行的作业名称。

本地运行GitHub Action

要在本地运行GitHub Action,你可以使用act工具。执行以下命令就可以启动本地运行环境:

act

然后,耐心等待即可。act会模拟GitHub Action的运行环境,输出日志和debug信息。如果你不想看到输出,可以使用-q选项来关闭。