Compare commits

...

1 commit
v0.9.8 ... main

Author SHA1 Message Date
e3f89fecc5 ci: restore Docker publish to release workflow (GHCR — API + web images)
Some checks failed
CI / Backend (Python) (push) Successful in 1m18s
CI / Frontend (Vue) (push) Successful in 20s
Mirror / mirror (push) Failing after 9s
2026-07-07 22:27:20 -07:00

View file

@ -1,12 +1,20 @@
# Tag-triggered release workflow. # Tag-triggered release workflow.
# Generates changelog and creates Forgejo release on v* tags. # Generates changelog, publishes Docker images to GHCR, and creates Forgejo release.
# Copied from Circuit-Forge/cf-agents workflows/release.yml
# #
# Docker push is intentionally disabled — BSL 1.1 registry policy not yet resolved. # Images published on v* tags:
# Tracked in Circuit-Forge/cf-agents#3. Re-enable the Docker steps when that lands. # ghcr.io/circuitforgellc/peregrine:latest — FastAPI API (includes cf-orch)
# ghcr.io/circuitforgellc/peregrine:<tag>
# ghcr.io/circuitforgellc/peregrine-web:latest — Vue SPA (base path /)
# ghcr.io/circuitforgellc/peregrine-web:<tag>
# #
# Required secrets: FORGEJO_RELEASE_TOKEN # The cloud image (compose.cloud.yml) is never published — it is built and
# (GHCR_TOKEN not needed until Docker push is enabled) # deployed directly on Heimdall from Dockerfile.cfcore with sibling repos.
#
# Required secrets:
# FORGEJO_RELEASE_TOKEN — Forgejo API token for creating releases
# GH_GHCR_TOKEN — GitHub PAT with packages:write for GHCR push
# FORGEJO_CF_ORCH_TOKEN — Forgejo token to install private circuitforge-orch
# during the API image build (BSL client for paid tier)
name: Release name: Release
@ -32,28 +40,56 @@ jobs:
env: env:
OUTPUT: CHANGES.md OUTPUT: CHANGES.md
# ── Docker (disabled — BSL registry policy pending cf-agents#3) ────────── # ── Docker setup ─────────────────────────────────────────────────────────
# - name: Set up QEMU - name: Set up QEMU
# uses: docker/setup-qemu-action@v3 uses: docker/setup-qemu-action@v3
# - name: Set up Buildx
# uses: docker/setup-buildx-action@v3 - name: Set up Buildx
# - name: Log in to GHCR uses: docker/setup-buildx-action@v3
# uses: docker/login-action@v3
# with: - name: Log in to GHCR
# registry: ghcr.io uses: docker/login-action@v3
# username: ${{ github.actor }} with:
# password: ${{ secrets.GHCR_TOKEN }} registry: ghcr.io
# - name: Build and push Docker image username: ${{ github.actor }}
# uses: docker/build-push-action@v6 password: ${{ secrets.GH_GHCR_TOKEN }}
# with:
# context: . # ── API image ─────────────────────────────────────────────────────────────
# push: true # cf-orch (BSL, private) is installed via BuildKit secret — token never
# platforms: linux/amd64,linux/arm64 # appears in any image layer. Community builds without the secret fall back
# tags: | # to local backends automatically.
# ghcr.io/circuitforgellc/peregrine:${{ github.ref_name }} - name: Build and push API image
# ghcr.io/circuitforgellc/peregrine:latest uses: docker/build-push-action@v6
# cache-from: type=gha with:
# cache-to: type=gha,mode=max context: .
dockerfile: Dockerfile
push: true
platforms: linux/amd64,linux/arm64
secrets: |
forgejo_token=${{ secrets.FORGEJO_CF_ORCH_TOKEN }}
tags: |
ghcr.io/circuitforgellc/peregrine:${{ github.ref_name }}
ghcr.io/circuitforgellc/peregrine:latest
cache-from: type=gha,scope=api
cache-to: type=gha,mode=max,scope=api
# ── Web image ─────────────────────────────────────────────────────────────
# Published with VITE_BASE_PATH=/ (self-hosted default).
# Cloud and demo deployments build locally with VITE_BASE_PATH=/peregrine/.
- name: Build and push web image
uses: docker/build-push-action@v6
with:
context: .
dockerfile: docker/web/Dockerfile
push: true
platforms: linux/amd64,linux/arm64
build-args: |
VITE_BASE_PATH=/
tags: |
ghcr.io/circuitforgellc/peregrine-web:${{ github.ref_name }}
ghcr.io/circuitforgellc/peregrine-web:latest
cache-from: type=gha,scope=web
cache-to: type=gha,mode=max,scope=web
# ── Forgejo Release ─────────────────────────────────────────────────────── # ── Forgejo Release ───────────────────────────────────────────────────────
- name: Create Forgejo release - name: Create Forgejo release