运行 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 }}