Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_011AgnQS6MHAGGoLNQDvv52d
42 lines
1.5 KiB
Markdown
42 lines
1.5 KiB
Markdown
# node-check
|
|
|
|
Reusable Gitea Actions workflow: `npm ci` → `npm run <script>` for each script in a list. Meant as a PR gate for frontend code, for example so Renovate can automerge npm updates.
|
|
|
|
## Usage
|
|
|
|
```yaml
|
|
on:
|
|
pull_request:
|
|
|
|
jobs:
|
|
frontend:
|
|
uses: templates/node-check/.gitea/workflows/node-check.yaml@v1
|
|
with:
|
|
working-directory: src/MyApp.Web
|
|
scripts: "check test build"
|
|
# node-version: "22"
|
|
```
|
|
|
|
## Inputs
|
|
|
|
| Name | Default | Description |
|
|
|---|---|---|
|
|
| `scripts` | (required) | npm scripts separated by spaces. They run in order and the job stops at the first failure. |
|
|
| `working-directory` | `.` | Directory with `package.json` and `package-lock.json` |
|
|
| `node-version` | `22` | Node.js version for `actions/setup-node` |
|
|
|
|
No secrets. `npm ci` needs a committed `package-lock.json`.
|
|
|
|
Branch protection: take the exact status-check name from the first PR run. Renaming the workflow `name:` or the job id `check` is a breaking change and needs a new major tag.
|
|
|
|
## Versioning
|
|
|
|
Only major tags (`v1`, `v2`, …). Fixes and new optional inputs move the existing tag. Changing or removing inputs, or changing behavior, needs a new major tag.
|
|
|
|
## Entscheidungen
|
|
|
|
Decisions by the owner of the `templates` org:
|
|
|
|
- 2026-10-15: Only major tags (`v1`, `v2`, …), no `vX.Y.Z` tags (see Versioning).
|
|
- 2026-10-17: All repos in the `templates` org are public, so consumers' runners can fetch them without credentials. They never contain secrets or internal addresses: secrets come in as `secrets:`, hosts as inputs.
|