Files

52 lines
1.4 KiB
Markdown

# CI on Gitea (self-hosted runner)
This repo uses a self-hosted Gitea Actions runner. The workflow lives in **.gitea/workflows/ci-no-marketplace.yml** and targets the labels:
- `self-hosted`
- `linux`
- `ubuntu-latest:host`
## Runner config example (no Docker)
Create **config.yaml** next to the act runner binary/service:
```yaml
runner:
capacity: 1
labels:
- 'self-hosted'
- 'linux'
- 'x64'
- 'ubuntu-latest:host'
```
Restart the runner service after changes.
## Lockfile policy
When `package-lock.json` exists, CI runs **npm ci** (fast, reproducible). Without a lockfile, CI falls back to **npm install**. Prefer committing a lockfile for stable builds.
## Common gotchas
- **Node setup order** — Node must be set _before_ installs. The workflow ensures this.
- **Dirty action cache** — If you see messages like
`Unable to pull refs/heads/v4: worktree contains unstaged changes`,
clean the runner's cached actions (see troubleshooting).
## Local preflight
```bash
# run the same checks locally
npm run lint:phase0
npm test -- --run
```
## Release environment
For local release scripts (e.g., creating a Gitea release), place secrets in a local `.gitea.env` file at the repo root and source it when running scripts. Do not commit this file.
- Use `.gitea.env.example` as a template.
- Ensure `.gitea.env` remains ignored via `.gitignore`.
If a token was ever committed, rotate it in Gitea and consider cleaning it from history.