Files
gitea-actions/test/npm/README.md
T
deac 9df18983c3 STAT-133: Add NPM_TOKEN support to node and test/npm actions for private registry auth
npm ci fails with E401 when a consuming repo's package-lock.json pins a
package to the private Gitea npm registry, since these composite actions
never write an .npmrc or set a registry auth token. Add an optional
NPM_TOKEN input that writes .npmrc before install; existing consumers that
don't pass it are unaffected.
2026-09-17 11:48:24 -04:00

50 lines
1.4 KiB
Markdown

# test/npm
Composite action: install dependencies and run an npm test script.
## Inputs
| Input | Description | Default |
|---|---|---|
| `INSTALL_CMD` | Install command | `npm ci` |
| `TEST_SCRIPT` | npm script to run (must exist in `package.json`) | `test` |
| `TEST_ARGS` | Additional arguments passed after `--` to the test script | `` |
| `WORKING_DIRECTORY` | Directory to run commands in | `.` |
| `NPM_TOKEN` | Auth token for the private Gitea npm registry (`@stat-tackler` scope). Leave empty if the repo installs no private packages. | `` |
## Usage
```yaml
- uses: stat-tackler/stat-tackler-infra/test/npm@main
with:
TEST_SCRIPT: test:unit
```
With a private `@stat-tackler` package in `package.json`:
```yaml
- uses: stat-tackler/stat-tackler-infra/test/npm@main
with:
TEST_SCRIPT: test:unit
NPM_TOKEN: ${{ secrets.REGISTRY_READ_WRITE_AGENT }}
```
With extra args:
```yaml
- uses: stat-tackler/stat-tackler-infra/test/npm@main
with:
TEST_SCRIPT: test:coverage
TEST_ARGS: --silent --reporter=dot --test-timeout=30000
```
### Common test scripts by project
| Project | Script | Runner |
|---|---|---|
| `stat-tackler-api` | `test` | Jest |
| `stat-tackler-scorekeeper` | `test:unit` | Vitest |
| `stat-tackler-scorekeeper` | `test:integration` | Vitest |
| `stat-tackler-scorekeeper` | `test:run` | Vitest (unit + integration) |
| `stat-tackler-scorekeeper` | `test:coverage` | Vitest |