docs: write CI_CD.md — Gitea Actions workflows, runners, and release process #96

Closed
opened 2026-02-09 13:45:25 +00:00 by forbes · 1 comment
Owner

Tier 3 — Infrastructure

File: docs/CI_CD.md

What this document should cover

  1. Workflow overview — Gitea Actions (GitHub Actions compatible)

    • .gitea/workflows/build.yml — triggered on every push to main and all PRs
    • .gitea/workflows/release.yml — triggered on tags matching v*
  2. Build workflow (build.yml) details:

    • Container: Ubuntu 24.04
    • Steps: Configure → Build → Test (C++ via ctest, Python CLI, GUI)
    • Artifact output: .tar.xz with SHA256 checksum
    • Caching: ccache with daily rotation, 4GB max, zlib compression level 6
  3. Release workflow (release.yml) details:

    • Trigger: tags matching v* (e.g., v0.1.0)
    • Matrix builds:
      • Linux: conda-linux-release (active)
      • macOS Intel: conda-macos-release (currently disabled)
      • macOS ARM: conda-macos-release (currently disabled)
      • Windows: conda-windows-release (currently disabled)
    • Publish step: creates Gitea release with artifacts
    • Pre-release detection: tags containing rc, beta, alpha
  4. Runner infrastructure:

    • Public runners: ubuntu-latest, macos-13, macos-14, windows-latest
    • Self-hosted: Gitea Act Runner
    • Cleanup daemon (.gitea/runner/cleanup.sh):
      • 70% disk → docker cleanup
      • 80% disk → cache cleanup
      • 90% disk → system cleanup
      • 95% disk → emergency cleanup
    • Service files: cleanup.service, cleanup.timer
  5. How to create a release:

    • Tag the commit: git tag v0.x.y
    • Push the tag: git push origin v0.x.y
    • Release workflow runs automatically
    • Pre-release vs stable detection
  6. Adding a new workflow step — guide for extending CI

Replaces

The existing docs/CI_CD.md is a detailed auto-generated document. This issue calls for a reviewed, maintained version.

Key source files

  • .gitea/workflows/build.yml
  • .gitea/workflows/release.yml
  • .gitea/runner/cleanup.sh
  • .gitea/runner/cleanup.service
  • .gitea/runner/cleanup.timer

Acceptance criteria

  • Both workflows are documented with trigger conditions and step descriptions
  • Runner infrastructure is explained
  • Release process is a clear step-by-step guide
  • Cleanup daemon tiers are documented
## Tier 3 — Infrastructure **File:** `docs/CI_CD.md` ### What this document should cover 1. **Workflow overview** — Gitea Actions (GitHub Actions compatible) - `.gitea/workflows/build.yml` — triggered on every push to `main` and all PRs - `.gitea/workflows/release.yml` — triggered on tags matching `v*` 2. **Build workflow (`build.yml`) details:** - Container: Ubuntu 24.04 - Steps: Configure → Build → Test (C++ via ctest, Python CLI, GUI) - Artifact output: `.tar.xz` with SHA256 checksum - Caching: ccache with daily rotation, 4GB max, zlib compression level 6 3. **Release workflow (`release.yml`) details:** - Trigger: tags matching `v*` (e.g., `v0.1.0`) - Matrix builds: - Linux: `conda-linux-release` (active) - macOS Intel: `conda-macos-release` (currently disabled) - macOS ARM: `conda-macos-release` (currently disabled) - Windows: `conda-windows-release` (currently disabled) - Publish step: creates Gitea release with artifacts - Pre-release detection: tags containing `rc`, `beta`, `alpha` 4. **Runner infrastructure:** - Public runners: ubuntu-latest, macos-13, macos-14, windows-latest - Self-hosted: Gitea Act Runner - Cleanup daemon (`.gitea/runner/cleanup.sh`): - 70% disk → docker cleanup - 80% disk → cache cleanup - 90% disk → system cleanup - 95% disk → emergency cleanup - Service files: `cleanup.service`, `cleanup.timer` 5. **How to create a release:** - Tag the commit: `git tag v0.x.y` - Push the tag: `git push origin v0.x.y` - Release workflow runs automatically - Pre-release vs stable detection 6. **Adding a new workflow step** — guide for extending CI ### Replaces The existing `docs/CI_CD.md` is a detailed auto-generated document. This issue calls for a reviewed, maintained version. ### Key source files - `.gitea/workflows/build.yml` - `.gitea/workflows/release.yml` - `.gitea/runner/cleanup.sh` - `.gitea/runner/cleanup.service` - `.gitea/runner/cleanup.timer` ### Acceptance criteria - [ ] Both workflows are documented with trigger conditions and step descriptions - [ ] Runner infrastructure is explained - [ ] Release process is a clear step-by-step guide - [ ] Cleanup daemon tiers are documented
forbes added the documentation label 2026-02-09 13:45:25 +00:00
Author
Owner

Superseded by the mdBook documentation structure set up in PR #105. The content scope of this issue is now covered by the pages in docs/src/. Remaining content work is tracked in #104.

Superseded by the mdBook documentation structure set up in PR #105. The content scope of this issue is now covered by the pages in `docs/src/`. Remaining content work is tracked in #104.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kindred/create#96