From 47a0c93b0b8c669d43373e21eed721aee7a1e4a5 Mon Sep 17 00:00:00 2001 From: ffaerber Date: Tue, 7 Jul 2026 17:16:08 +0200 Subject: [PATCH] feat(ci): skip opencode re-download on cache hit --- .gitea/workflows/scripts/install-opencode.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/scripts/install-opencode.sh b/.gitea/workflows/scripts/install-opencode.sh index 57ee2d2..761d57a 100755 --- a/.gitea/workflows/scripts/install-opencode.sh +++ b/.gitea/workflows/scripts/install-opencode.sh @@ -9,7 +9,14 @@ set -eu # --format json event schema that build-activity-log.sh parses) breaks every agent in every repo # at once. Bump deliberately by changing this default (or set OPENCODE_VERSION in the step env). OPENCODE_VERSION="${OPENCODE_VERSION:-1.17.13}" -curl -fsSL https://opencode.ai/install | bash -s -- --version "$OPENCODE_VERSION" +# Skip the download when a cache hit already restored the pinned binary (see the Cache +# opencode CLI step in agent.yml). The installer always re-fetches otherwise. +OC_BIN="$HOME/.opencode/bin/opencode" +if [ -x "$OC_BIN" ] && "$OC_BIN" --version 2>/dev/null | grep -qF "$OPENCODE_VERSION"; then + echo "opencode $OPENCODE_VERSION already present (cache hit) — skipping install" +else + curl -fsSL https://opencode.ai/install | bash -s -- --version "$OPENCODE_VERSION" +fi echo "$HOME/.opencode/bin" >> "$GITHUB_PATH" mkdir -p ~/.config/opencode # Playwright browser MCP only for agents that need to drive a web app