Files
KNELCloudronPackages/docs/CI_CD_GITEA.md

2.1 KiB
Raw Blame History

Gitea CI/CD and Registry Integration

This project uses the Gitea Actions runner and the built-in container registry hosted at https://git.knownelement.com. The workflow definition lives under .gitea/workflows/ci.yml and targets the Gitea Actions runtime (1.21+) alongside the built-in container registry available on current releases. The workflow is currently configured for manual workflow_dispatch runs so all routine testing stays on the local harness until a runner is available. citeturn0search0turn1search0

Prerequisites

  1. Enable Actions on the Gitea instance and mirror required upstream actions (actions/checkout@v4, optional others) via the "Actions" admin panel. citeturn0search0
  2. Provision a runner (e.g. act_runner) with Docker access so jobs can launch containers. citeturn0search5
  3. Authenticate to the registry by generating a Gitea access token (scope write:package) and logging in via Docker:
    docker login git.knownelement.com -u <username> -p <token>
    
    citeturn1search0

Workflow overview

The manual workflow_dispatch job builds the docker/ci-runner image, then executes scripts/ci_local.sh with the requested task list (default all). This mirrors the local harness, so whatever succeeds locally will succeed in CI.

Re-enable push/PR triggers once a runner is available and make ci-local is consistently green.

Container registry usage

  • Tag Cloudron packages against the registry namespace, e.g. git.knownelement.com/knel/cloudron/apache-apisix:<version>.
  • The packager helper script reads IMAGE_NAME; override it when pushing to the registry:
    IMAGE_NAME=git.knownelement.com/knel/cloudron-packager BUILD=1 scripts/run_packager.sh
    docker push git.knownelement.com/knel/cloudron-packager
    
  • Cloudrons CLI can push directly to the registry once you log in within the packager container.

Future enhancements

  • Add make lint and make status as required checks in Gitea branch protection.
  • Extend the workflow with matrix builds for priority apps (e.g. run smoke scripts once implemented).