chore(ci): support forked opencode sidecar (#575)

- Allow OpenWork workflows to pull the OpenCode CLI sidecar from a configurable GitHub repo + version (OPENCODE_GITHUB_REPO/OPENCODE_VERSION).\n- Make Settings > Debug show OpenCode binary source + version (e.g. bundled · 1.1.60-openwork.1).
This commit is contained in:
ben
2026-02-15 15:26:19 -08:00
committed by GitHub
parent 6284b581f7
commit 695e433781
5 changed files with 102 additions and 16 deletions

View File

@@ -83,6 +83,8 @@ jobs:
RELEASE_NAME: ${{ needs.prepare-release.outputs.release_name }}
RELEASE_BODY: ${{ needs.prepare-release.outputs.release_body }}
MACOS_NOTARIZE: ${{ vars.MACOS_NOTARIZE || 'false' }}
OPENCODE_GITHUB_REPO: ${{ vars.OPENCODE_GITHUB_REPO || 'anomalyco/opencode' }}
OPENCODE_VERSION: ${{ vars.OPENCODE_VERSION || '' }}
strategy:
fail-fast: false
@@ -161,6 +163,7 @@ jobs:
run: |
node <<'NODE' >> "$GITHUB_OUTPUT"
const fs = require('fs');
const repo = (process.env.OPENCODE_GITHUB_REPO || 'anomalyco/opencode').trim() || 'anomalyco/opencode';
async function resolveLatest() {
const token = (process.env.GITHUB_TOKEN || '').trim();
@@ -173,7 +176,7 @@ jobs:
// Prefer API, but fall back to the web "latest" redirect if rate-limited (403) or otherwise blocked.
try {
const res = await fetch('https://api.github.com/repos/anomalyco/opencode/releases/latest', { headers });
const res = await fetch(`https://api.github.com/repos/${repo}/releases/latest`, { headers });
if (res.ok) {
const data = await res.json();
const tag = (typeof data.tag_name === 'string' ? data.tag_name : '').trim();
@@ -188,7 +191,7 @@ jobs:
// continue to fallback
}
const web = await fetch('https://github.com/anomalyco/opencode/releases/latest', {
const web = await fetch(`https://github.com/${repo}/releases/latest`, {
headers: { 'User-Agent': 'openwork-ci' },
redirect: 'follow',
});
@@ -249,7 +252,8 @@ jobs:
;;
esac
url="https://github.com/anomalyco/opencode/releases/download/v${OPENCODE_VERSION}/${opencode_asset}"
repo="${OPENCODE_GITHUB_REPO:-anomalyco/opencode}"
url="https://github.com/${repo}/releases/download/v${OPENCODE_VERSION}/${opencode_asset}"
tmp_dir="$RUNNER_TEMP/opencode"
extract_dir="$tmp_dir/extracted"
rm -rf "$tmp_dir"