【发布时间】:2021-07-18 08:52:25
【问题描述】:
给定一个包含两个包的存储库结构,如下所示:
$ tree
.
└── packages
├── foo
└── bar
$ cat pnpm-workspace.yaml
packages:
- 'packages/**'
$ pnpm -s m ls --depth -1
monorepo /monorepo
@mono/foo@0.0.0 /monorepo/packages/foo
@mono/baz@0.0.0 /monorepo/packages/bar
我想运行 GitHub Actions CI,以便它自动将每个项目作为单独的作业运行。在这里,我设置了一个手动执行并行化的作业:
name: CI
on:
push:
jobs:
build:
strategy:
matrix:
package: ["@mono/foo", "@mono/bar" ]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: pnpm/action-setup@v2
with:
version: 6.9.1
- run: pnpm run --filter ${{ matrix.package }} test
运行速度很快,因为每个项目都作为并行作业运行,但我不想手动维护 matrix.package 列表。如何利用 pnpm 提供一个工作区项目列表,这些项目会被输入到 GitHub Actions CI 中?
【问题讨论】:
标签: continuous-integration github-actions monorepo pnpm