Files
orca/.coreci.yml
Jon Chery df3f980fa0
Release / ci (push) Failing after 5m54s
Release / container-orca (push) Has been skipped
Release / container-traefik (push) Has been skipped
fix(P1): move release to Gitea Actions step — CoreCI disk full issue
CoreCI's SQLite logging fills the runner's disk during go test -race,
causing the release job to fail when writing the tarball (3-second
failure). The release job ran inside CoreCI's shell-isolated executor
which shares the same disk as CoreCI's SQLite DB.

Fix: move the release logic (build tarball + upload to Gitea) to a
separate Gitea Actions step that runs AFTER coreci run completes.
This step runs in the Gitea Actions runner directly (full env, no
CoreCI disk constraints). The .coreci.yml now only has build→test
jobs. The release is handled by scripts/ci-release.sh called from the
Gitea Actions workflow.

Architecture:
  Gitea Actions ci job:
    1. Checkout + Set up Go + Install CoreCI
    2. coreci run (executes .coreci.yml: build → test)
    3. sh scripts/ci-release.sh (build tarball + upload to Gitea API)

---ci---
project: orca
phase: 1
milestone: v0.16
status: execute
---/ci---
2026-08-12 22:36:56 +00:00

39 lines
1.9 KiB
YAML

version: "1"
name: orca-ci
description: Orca — offline/CLI-first orchestration engine. CI pipeline via CoreCI.
# CoreCI configuration for orca (v0.16 rewrite — native jobs: format).
#
# CoreCI's Pipeline struct only recognizes `jobs:`, `services:`, and `env:`
# top-level keys. Unknown keys (like the old `pipelines:`) are silently
# dropped by yaml.Unmarshal, producing an empty Jobs map → zero jobs
# execute. This file uses the native `jobs:`/`invoke:`/`vars:` format
# with a DAG via `needs:`.
#
# DAG: build → test
#
# The Gitea Actions workflow (.gitea/workflows/release.yml) gates on
# `on: push: tags: ['v*']`, so every `coreci run` invocation is already
# a release run. The release step (build tarball + upload to Gitea) is
# handled by a separate Gitea Actions step AFTER `coreci run` completes,
# because CoreCI's SQLite logging can fill the runner's disk during
# `go test -race`, causing the release job to fail when writing files.
#
# Each job uses `invoke:` only (no `plugin:`) — CoreCI's validate()
# rejects jobs with both plugin and invoke set (mutually exclusive).
# Jobs run via the shell-isolated executor (sh -c <invoke>).
#
# CoreCI's ValidateShellCommand forbids shell metacharacters (&|;`><$())
# in the invoke: string. All complex logic lives in scripts/ci-run.sh.
jobs:
# ── build ────────────────────────────────────────────────────────────
# CI_COMMIT_BRANCH contains the tag name on tag pushes (CoreCI's github.go
# maps GITHUB_REF_NAME → CI_COMMIT_BRANCH). CI_COMMIT_SHA is the commit.
build:
invoke: "sh scripts/ci-run.sh build"
# ── test (REQ-031: -race) ────────────────────────────────────────────
test:
needs: [build]
invoke: "sh scripts/ci-run.sh test"