mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-21 16:18:55 +00:00
The set-matrix step wrote the npm workspace query result directly to $GITHUB_OUTPUT. If discovery ever produced [], the matrix would expand to zero check jobs, leaving the reusable workflow green without running any JS/TS checks. Now the step validates the result is a non-empty array before emitting it, and exits 1 with a GitHub annotation if it's empty or jq failed.
49 lines
1.6 KiB
YAML
49 lines
1.6 KiB
YAML
# .github/workflows/js-tests.yml
|
|
name: JS Tests
|
|
|
|
on:
|
|
workflow_call:
|
|
|
|
jobs:
|
|
workspaces:
|
|
name: List npm workspaces
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
packages: ${{ steps.set-matrix.outputs.packages }}
|
|
steps:
|
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
|
with:
|
|
node-version: 22
|
|
cache: npm
|
|
- uses: ./.github/actions/retry
|
|
with:
|
|
command: npm ci --ignore-scripts
|
|
- id: set-matrix
|
|
run: |
|
|
PACKAGES=$(npm query .workspace | jq -c '[.[].location]')
|
|
if [ "$PACKAGES" = "[]" ] || [ -z "$PACKAGES" ]; then
|
|
echo "::error::Workspace discovery produced an empty package list — refusing to emit a zero-length matrix (would skip all JS/TS checks silently)."
|
|
exit 1
|
|
fi
|
|
echo "packages=$PACKAGES" >> "$GITHUB_OUTPUT"
|
|
|
|
check:
|
|
name: Typecheck & Test
|
|
runs-on: ubuntu-latest
|
|
needs: workspaces
|
|
strategy:
|
|
matrix:
|
|
package: ${{ fromJson(needs.workspaces.outputs.packages) }}
|
|
fail-fast: false # report all failures, not just the first one
|
|
steps:
|
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
|
with:
|
|
node-version: 22
|
|
cache: npm
|
|
- uses: ./.github/actions/retry
|
|
with:
|
|
# --ignore-scripts: TS & tests don't need native deps
|
|
command: npm ci --ignore-scripts
|
|
- run: npm run --prefix ${{ matrix.package }} check
|