ci(release): target forgejo.philflow.me instead of codeberg #12

Open
Phil wants to merge 1 commit from ci/release-philflow into main
Owner

Refs #11

What this does

Ports the inherited upstream goern release pipeline off codeberg so the fork can cut releases on its own Forgejo.

  • .forgejo/workflows/release.yml
    • runs-on: codeberg-smallflow-raven-staging-ci (see "placeholder" caveat below)
    • both hardcoded https://codeberg.org/api/v1/... URLs in the .mcpb attach step → ${{ github.server_url }}/api/v1/... (resolves to the Forgejo server running the workflow — no host pinned ever again)
  • .goreleaser.yml
    • gitea_urls.api / gitea_urls.download → the fork host

⚠️ This is UNTESTED — no runner exists to validate it

There is no Forgejo Actions runner with Go + goreleaser proven available for this repo. Evidence: every runs-on: label in flow.raven/.forgejo/workflows/*.yml is a shell/Node/postgres CI pool — there is zero setup-go/go-version/golang usage anywhere in those workflows. So I could not run the workflow to confirm it works.

The flow-raven-staging-ci label is a placeholder pick: it's the general-purpose Philflow CI runner (16 of the flow.raven workflows use it) and the workflow already provisions Go via actions/setup-go@v6 and goreleaser via goreleaser-action@v6, so the runner image only needs git + curl + jq + node. If that pool's image lacks any of those, or you register a dedicated release runner, swap the label.

What Phil still has to do before a release works

  1. Confirm / swap the runs-on label — verify flow-raven-staging-ci (or whatever you pick) can run setup-go + goreleaser-action, or register a dedicated release runner.
  2. Add the RELEASE_TOKEN secret to the repo (a Forgejo token with write:repository for releases). The workflow passes it as GITEA_TOKEN to goreleaser and to the .mcpb curl steps.
  3. Tag v2.23.0 (git tag v2.23.0 && git push origin v2.23.0) → goreleaser builds forgejo-mcp_2.23.0_{linux,darwin}_{amd64,arm64}.tar.gz as release assets and the .mcpb step attaches the Claude-Desktop extensions.
  4. Point the install scripts at the fork releaseflow.raven-deployment/scripts/setup-raven-dev-mcp-toolchain.sh:65 currently pulls FORGEJO_MCP_URL from codeberg.org/goern/... and pins v2.22.0 (line 63); bump to v2.23.0 and the fork host once the release exists. (Cross-repo — left untouched here.)
  5. Optional (issue #11 item 5): make the install path auto-write forgejo-mcp.head from git rev-parse HEAD so the provenance pin can't go stale again.

Do not merge until the runner question (item 1) is resolved — merging an unrunnable workflow is harmless but won't produce a release.

🤖 Generated with Claude Code

Refs #11 ## What this does Ports the inherited upstream goern release pipeline off codeberg so the fork can cut releases on its own Forgejo. - **`.forgejo/workflows/release.yml`** - `runs-on: codeberg-small` → `flow-raven-staging-ci` (see "placeholder" caveat below) - both hardcoded `https://codeberg.org/api/v1/...` URLs in the `.mcpb` attach step → `${{ github.server_url }}/api/v1/...` (resolves to the Forgejo server running the workflow — no host pinned ever again) - **`.goreleaser.yml`** - `gitea_urls.api` / `gitea_urls.download` → the fork host ## ⚠️ This is UNTESTED — no runner exists to validate it There is **no** Forgejo Actions runner with Go + goreleaser proven available for this repo. Evidence: every `runs-on:` label in `flow.raven/.forgejo/workflows/*.yml` is a shell/Node/postgres CI pool — there is **zero** `setup-go`/`go-version`/`golang` usage anywhere in those workflows. So I could not run the workflow to confirm it works. The `flow-raven-staging-ci` label is a **placeholder pick**: it's the general-purpose Philflow CI runner (16 of the flow.raven workflows use it) and the workflow already provisions Go via `actions/setup-go@v6` and goreleaser via `goreleaser-action@v6`, so the runner image only needs `git + curl + jq + node`. If that pool's image lacks any of those, or you register a dedicated release runner, swap the label. ## What Phil still has to do before a release works 1. **Confirm / swap the `runs-on` label** — verify `flow-raven-staging-ci` (or whatever you pick) can run `setup-go` + `goreleaser-action`, or register a dedicated release runner. 2. **Add the `RELEASE_TOKEN` secret** to the repo (a Forgejo token with `write:repository` for releases). The workflow passes it as `GITEA_TOKEN` to goreleaser and to the `.mcpb` curl steps. 3. **Tag `v2.23.0`** (`git tag v2.23.0 && git push origin v2.23.0`) → goreleaser builds `forgejo-mcp_2.23.0_{linux,darwin}_{amd64,arm64}.tar.gz` as release assets and the `.mcpb` step attaches the Claude-Desktop extensions. 4. **Point the install scripts at the fork release** — `flow.raven-deployment/scripts/setup-raven-dev-mcp-toolchain.sh:65` currently pulls `FORGEJO_MCP_URL` from `codeberg.org/goern/...` and pins `v2.22.0` (line 63); bump to `v2.23.0` and the fork host once the release exists. (Cross-repo — left untouched here.) 5. Optional (issue #11 item 5): make the install path auto-write `forgejo-mcp.head` from `git rev-parse HEAD` so the provenance pin can't go stale again. Do **not** merge until the runner question (item 1) is resolved — merging an unrunnable workflow is harmless but won't produce a release. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
The fork inherited the upstream goern release workflow, which runs on
codeberg-small and pushes release assets to codeberg.org/api/v1. Neither
exists on this fork's Forgejo host, so the fork has never had a working
release path (v2.23.0 fixes were container-built and hand-installed).

- release.yml: runs-on codeberg-small -> flow-raven-staging-ci (placeholder,
  flagged for Phil); replace both hardcoded codeberg.org/api/v1 URLs in the
  .mcpb step with the github.server_url context so the host is never pinned.
- .goreleaser.yml: gitea_urls api/download -> the fork host.

UNTESTED: no runner is available to validate this (see PR body). Go 1.25 +
goreleaser are provisioned by setup-go / goreleaser-action, so the runner
image only needs git + curl + jq + node.

Refs #11

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin ci/release-philflow:ci/release-philflow
git switch ci/release-philflow

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff ci/release-philflow
git switch ci/release-philflow
git rebase main
git switch main
git merge --ff-only ci/release-philflow
git switch ci/release-philflow
git rebase main
git switch main
git merge --no-ff ci/release-philflow
git switch main
git merge --squash ci/release-philflow
git switch main
git merge --ff-only ci/release-philflow
git switch main
git merge ci/release-philflow
git push origin main
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Phil/forgejo-mcp!12
No description provided.