运行 GitHub 对存储库中的每个模块动态操作
Run GitHub Action dynamically for each module in a repository
我的 repo 具有以下结构:
.
├── module1
├── module2
└── module3
我想在没有复制粘贴的情况下为每个模块执行预定义的操作(如 github.com/golangci/golangci-lint-action)。
理想情况下,我不想在 *.yml
文件中列出模块名称。如果这不可能,那么我只想指定一次列表,以便我可以在不同的工作流程中重复使用它
是否可以使用任何 GitHub 操作功能?
您可以使用 matrix
来实现这一点。下面的例子对你有帮助
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
directory: [module1, module2, module3]
steps:
- uses: actions/checkout@v2
- uses: actions/setup-go@v2
with:
go-version: '^1.13.1'
- name: golangci-lint
uses: golangci/golangci-lint-action@v2
with:
version: v1.29
working-directory: ${{ matrix.directory }}
我的 repo 具有以下结构:
.
├── module1
├── module2
└── module3
我想在没有复制粘贴的情况下为每个模块执行预定义的操作(如 github.com/golangci/golangci-lint-action)。
理想情况下,我不想在 *.yml
文件中列出模块名称。如果这不可能,那么我只想指定一次列表,以便我可以在不同的工作流程中重复使用它
是否可以使用任何 GitHub 操作功能?
您可以使用 matrix
来实现这一点。下面的例子对你有帮助
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
directory: [module1, module2, module3]
steps:
- uses: actions/checkout@v2
- uses: actions/setup-go@v2
with:
go-version: '^1.13.1'
- name: golangci-lint
uses: golangci/golangci-lint-action@v2
with:
version: v1.29
working-directory: ${{ matrix.directory }}