GitHub Action本地调试工具
act
是一个工具,它提供了一个简洁的GitHub Action本地运行环境,你可以在不提交代码的情况下测试和运行你的Action。
act
安装步骤
- 安装Docker,如果你还没有安装的话。你可以下载适合你的操作系统的Docker Desktop。
- 安装
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
事件触发时运行它。
该工作流程包括两个作业:build
和publish-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
选项来关闭。