🎭

NPM workspaces で特定のworkspaceをCIする

2021/09/03に公開
  • on.push.pathsでCIのトリガーとなる対象のパスを指定する
  • working-directoryは設定しない
    • npm iしてからnpm -wでworkspaceを指定し、ルートからworkspaceで定義したCIのコマンドを呼ぶ
  • nodeのバージョンが16未満の場合は、npm iする前にnpm i -g npm@latestする
    • npm iに失敗する場合がありそう
.github/workflows/hoge.yml
name: Test Hoge
on:
  push:
    paths:
      - ".github/workflows/hoge.yml"
      - "packages/hoge/**"
jobs:
  test:
    name: Test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v1
        with:
          node-version: "14.x"
      - name: Upgrade npm
        run: npm i -g npm@latest
      - name: Install dependencies
        run: npm install
      - name: Test
        run: npm run ci -w hoge

Discussion