Files
KNELCloudronPackages/docs/LOCAL_TESTING.md

1.3 KiB

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:
    • lintmake 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:

./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.