34 lines
1.3 KiB
Markdown
34 lines
1.3 KiB
Markdown
# Local Test Harness
|
|
|
|
All verification runs locally inside Docker containers so your workstation matches the eventual Gitea Actions runner exactly.
|
|
|
|
## CI-equivalent container
|
|
|
|
- `docker/ci-runner/Dockerfile` builds the image `knel/cloudron-ci`, derived from the same base the Gitea runner will use.
|
|
- `scripts/ci_local.sh` orchestrates tasks inside that container. Run `BUILD=1 ./scripts/ci_local.sh lint` the first time to build the image.
|
|
- Tasks:
|
|
- `lint` → `make lint` + `make status` + `git diff docs/APP_STATUS.md`
|
|
- `packager-smoke` → builds `docker/packager` and runs `cloudron --help`
|
|
- `all` (default) → runs both.
|
|
|
|
The script mounts `/var/run/docker.sock` so Docker CLI calls inside the container reuse the host daemon.
|
|
|
|
## Git hooks
|
|
|
|
Use `scripts/hooks/install_hooks.sh` to install local hooks:
|
|
|
|
```bash
|
|
./scripts/hooks/install_hooks.sh
|
|
```
|
|
|
|
- `pre-commit` runs `./scripts/ci_local.sh lint`.
|
|
- `post-commit` refreshes `docs/APP_STATUS.md` (non-fatal).
|
|
- `pre-push` runs the packager smoke test.
|
|
|
|
Set `SKIP_CI_HOOKS=1` when you need to bypass the hooks temporarily.
|
|
|
|
## Alignment with Gitea Actions
|
|
|
|
The `.gitea/workflows/ci.yml` workflow wraps the same `scripts/ci_local.sh` entrypoint and is currently manual-only (`workflow_dispatch`). Enable push/PR triggers once a runner is provisioned.
|
|
|