diff --git a/.github/workflows/lint-build-test.yml b/.github/workflows/lint-build-test.yml index bf3fa557..f03e8fe2 100644 --- a/.github/workflows/lint-build-test.yml +++ b/.github/workflows/lint-build-test.yml @@ -155,6 +155,15 @@ jobs: echo "Working tree dirty at end of job" exit 1 fi + - name: Upload build artifacts + uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6 + with: + name: package-dist-${{ github.sha }} + # Glob discards the path before the first wildcard (`packages/`), so + # the artifact root is `/dist/...`. Download into `packages/` + # to restore `packages//dist/...`. + path: packages/*/dist + retention-days: 1 test-scripts: name: Test Scripts @@ -181,7 +190,7 @@ jobs: test: name: Test runs-on: ubuntu-latest - needs: prepare + needs: [prepare, build] strategy: matrix: node-version: [20.x, 22.x] @@ -192,8 +201,11 @@ jobs: with: is-high-risk-environment: false node-version: ${{ matrix.node-version }} - - name: Build for tests - run: yarn workspace ${{ matrix.package-name }} build + - name: Restore build artifacts + uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7 + with: + name: package-dist-${{ github.sha }} + path: packages - run: yarn workspace ${{ matrix.package-name }} run test - name: Require clean working directory shell: bash diff --git a/package.json b/package.json index 30b7a30e..170e1a37 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ ], "files": [], "scripts": { - "build": "yarn workspaces foreach --all --no-private --parallel --interlaced --verbose run build", + "build": "yarn workspaces foreach --all --no-private --topological-dev --parallel --interlaced --verbose run build", "build:clean": "yarn build:only-clean && yarn build", "build:docs": "yarn workspaces foreach --all --no-private --parallel --interlaced --verbose run build:docs", "build:only-clean": "rimraf -g 'packages/*/dist'",