Files
KNELCloudronPackages/docs/CI_CD_GITEA.md

40 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 CI image and then executes the same commands you run locally via:
```bash
./run/dev.sh python scripts/lint_repo.py --slug apache-apisix --strict
./run/dev.sh python scripts/generate_status.py --preserve-timestamp
```
> Re-enable push/PR triggers once a runner is available and the commands above consistently succeed.
## Container registry usage
- Tag Cloudron packages against the registry namespace, e.g. `git.knownelement.com/knel/cloudron/apache-apisix:<version>`.
- Build and push images directly via Docker:
```bash
docker build -t git.knownelement.com/knel/cloudron-packager docker/packager
docker push git.knownelement.com/knel/cloudron-packager
```
- Cloudrons CLI can push directly to the registry once you log in within the packager shell (`./run/packager.sh`).
## Future enhancements
- Add lint/status checks as required gates in Gitea branch protection.
- Extend the workflow with matrix builds for priority apps (e.g. run smoke scripts once implemented).