Scaffold Cloudron packaging workspace and automation

This commit is contained in:
2025-10-02 12:07:09 -05:00
parent b4121cc932
commit 482d4ff1b8
414 changed files with 6837 additions and 2 deletions

35
docs/CI_CD_GITEA.md Normal file
View File

@@ -0,0 +1,35 @@
# 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:
```bash
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:
```bash
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).