From 406be02b1bcf7f26ba8fa8ecd80bc43236129a10 Mon Sep 17 00:00:00 2001 From: Justin Ko Date: Wed, 30 Sep 2026 12:59:22 +0900 Subject: [PATCH] chore(release): add repository release contract --- .gitea/release.yaml | 100 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 .gitea/release.yaml diff --git a/.gitea/release.yaml b/.gitea/release.yaml new file mode 100644 index 0000000..57ef856 --- /dev/null +++ b/.gitea/release.yaml @@ -0,0 +1,100 @@ +schema: gitea-agent/release/v1 + +version: + sources: + - path: pyproject.toml + format: toml + selector: project.version + lockfiles: + - path: uv.lock + package: jarca-ledger-mcp + tag_template: "v{version}" + +prepare: + runtime: + python: "3.12" + commands: + - name: sync + argv: [uv, sync, --python, "3.12", --frozen, --extra, dev, --extra, dashboard] + - name: lint + argv: [uv, run, ruff, check, .] + - name: test + argv: [uv, run, pytest] + - name: dashboard-http-smoke + argv: [uv, run, python, scripts/ci_dashboard_http_smoke.py, --host, 127.0.0.1, --port, "18501", --timeout, "45"] + - name: db-safety-smoke + argv: [uv, run, python, scripts/ci_db_safety_smoke.py, --timeout, "45"] + +artifacts: + - type: container + name: jarca-ledger-mcp + platform: linux/arm64 + + build: + adapter: docker-buildx + context: . + dockerfile: Dockerfile + pull: true + local_tag_template: "jarca-ledger-mcp:release-{commit}" + labels: + org.opencontainers.image.source: "https://gitea.jsfamily.quest/genichin/jarca-ledger-mcp" + org.opencontainers.image.revision: "{commit}" + org.opencontainers.image.version: "{version}" + + smoke: + - type: image-platform + expected_os: linux + expected_architecture: arm64 + - type: container-command + environment: + JARCA_LEDGER_DB_PATH: /tmp/ledger.sqlite3 + argv: + - python + - -c + - >- + import platform; from jarca_ledger_mcp import service; + result = service.health_check(); + assert platform.machine() == "aarch64"; + assert result["success"], result + - type: container-health + name_template: "jarca-mcp-{run_id}" + command: default + expected: healthy + timeout_seconds: 90 + - type: container-http + name_template: "jarca-dashboard-{run_id}" + command: + - python + - -m + - streamlit + - run + - dashboard/app.py + - --server.address + - 0.0.0.0 + - --server.port + - "8501" + - --server.headless + - "true" + - --browser.gatherUsageStats + - "false" + container_port: 8501 + path: /_stcore/health + expected_status: 200 + expected_body: ok + timeout_seconds: 90 + + publish: + adapter: gitea-container-registry + registry: gitea.jsfamily.quest + repository: genichin/jarca-ledger-mcp + credentials: + username: authenticated-gitea-login + token_env: GITEA_TOKEN + tags: + - "{tag}" + - "sha-{commit}" + overwrite: false + verify: + - digest + - platform + - org.opencontainers.image.revision