From 1c7a7f0c82242ba512b27739358e68a6214284a9 Mon Sep 17 00:00:00 2001 From: m3tm3re
Date: Tue, 20 Jan 2026 19:36:51 +0100 Subject: [PATCH] fix: remove deprecated opencode update logic --- .gitea/workflows/nix-update.yml | 119 +++++++++++++++++++++++++++----- 1 file changed, 103 insertions(+), 16 deletions(-) diff --git a/.gitea/workflows/nix-update.yml b/.gitea/workflows/nix-update.yml index e105356..1af7c61 100644 --- a/.gitea/workflows/nix-update.yml +++ b/.gitea/workflows/nix-update.yml @@ -52,6 +52,74 @@ jobs: "https://m3tam3re@code.m3ta.dev/m3tam3re/nixpkgs.git" \ "$REPO_DIR" + - name: Update opencode Flake Input + id: update-opencode + run: | + cd "$REPO_DIR" + + echo "::group::Checking for opencode updates" + + # Get latest release from GitHub API + LATEST_RELEASE=$(curl -s "https://api.github.com/repos/anomalyco/opencode/releases/latest" | jq -r '.tag_name') + + # Extract current version from flake.nix + CURRENT_VERSION=$(grep -oP 'opencode\.url = "github:anomalyco/opencode/v\K[^"]+' flake.nix) + + echo "Current opencode version: $CURRENT_VERSION" + echo "Latest opencode version: $LATEST_RELEASE" + + # Check if update is needed + if [ "$LATEST_RELEASE" != "$CURRENT_VERSION" ]; then + echo "đ Updating opencode from $CURRENT_VERSION to $LATEST_RELEASE" + + # Update flake.nix with new version + sed -i 's|opencode\.url = "github:anomalyco/opencode/v.*"|opencode.url = "github:anomalyco/opencode/'"$LATEST_VERSION"'"| flake.nix + + # Update flake lock to fetch new revision + nix flake update opencode + + # Format with alejandra + nix fmt + + # Verify the update + echo "::endgroup::" + echo "::group::Verifying opencode update" + + # Run flake check + if ! nix flake check; then + echo "â Flake check failed after opencode update" + git checkout flake.nix flake.lock + exit 1 + fi + + # Build opencode package + if ! nix build .#opencode 2>&1 | tee /tmp/opencode-build.log; then + echo "â Build failed for opencode" + git checkout flake.nix flake.lock + exit 1 + fi + + echo "â Flake check passed" + echo "â Build successful for opencode" + echo "::endgroup::" + + # Commit the change + echo "::group::Committing opencode update" + git add flake.nix flake.lock + git commit -m "chore: update opencode flake input to $LATEST_RELEASE" + + echo "opencode_update=true" >> $GITHUB_OUTPUT + echo "opencode_version=${LATEST_RELEASE}" >> $GITHUB_OUTPUT + echo "::endgroup::" + + echo "â Updated opencode to $LATEST_RELEASE" + else + echo "â opencode is already up to date" + echo "opencode_update=false" >> $GITHUB_OUTPUT + echo "opencode_version=${CURRENT_VERSION}" >> $GITHUB_OUTPUT + echo "::endgroup::" + fi + - name: Check Prerequisites id: check run: | @@ -89,19 +157,14 @@ jobs: } run_update() { - local pkg=$1 - local before_hash=$(git rev-parse HEAD) + local pkg=$1 + local before_hash=$(git rev-parse HEAD) - echo "::group::Updating $pkg" + echo "::group::Updating $pkg" - local args=("--flake" "--commit" "--use-github-releases") + local args=("--flake" "--commit" "--use-github-releases") - # Handle subpackages (opencode has node_modules) - if [ "$pkg" = "opencode" ]; then - args+=("--subpackage" "node_modules") - fi - - args+=("$pkg") + args+=("$pkg") if nix-update "${args[@]}" 2>&1 | tee /tmp/update-${pkg}.log; then if [ "$(check_commit "$before_hash")" = "true" ]; then @@ -201,7 +264,7 @@ jobs: fi - name: Verify Builds - if: steps.update.outputs.has_updates == 'true' + if: steps.update.outputs.has_updates == 'true' || steps.update-opencode.outputs.opencode_update == 'true' run: | cd "$REPO_DIR" @@ -253,11 +316,20 @@ jobs: echo "â All packages built successfully: ${SUCCESSFUL_PACKAGES[*]}" - name: Push Changes - if: steps.update.outputs.has_updates == 'true' + if: steps.update.outputs.has_updates == 'true' || steps.update-opencode.outputs.opencode_update == 'true' run: | cd "$REPO_DIR" PACKAGES="${{ steps.update.outputs.updated_packages }}" + # Add opencode to packages list if it was updated + if [ "${{ steps.update-opencode.outputs.opencode_update }}" = "true" ]; then + if [ -n "$PACKAGES" ]; then + PACKAGES="$PACKAGES, opencode" + else + PACKAGES="opencode" + fi + fi + echo "::group::Git Operations" echo "Current commit: $(git rev-parse HEAD)" echo "Pending commits: $(git rev-list --count origin/master..HEAD)" @@ -290,6 +362,7 @@ jobs: path: | /tmp/update-*.log /tmp/build-*.log + /tmp/opencode-build.log retention-days: 7 - name: Cleanup @@ -303,7 +376,7 @@ jobs: rm -rf "$REPO_DIR" # Remove all log files - rm -f /tmp/update-*.log /tmp/build-*.log /tmp/update-log.txt /tmp/success-packages.txt + rm -f /tmp/update-*.log /tmp/build-*.log /tmp/opencode-build.log /tmp/update-log.txt /tmp/success-packages.txt # Clear sensitive environment variables unset GIT_AUTHOR_EMAIL GIT_COMMITTER_EMAIL @@ -311,17 +384,31 @@ jobs: - name: Summary if: always() run: | + HAS_UPDATES="false" + if [ "${{ steps.update.outputs.has_updates }}" = "true" ]; then + HAS_UPDATES="true" echo "# â Update Summary" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo "## Updated Packages" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo "\`${{ steps.update.outputs.updated_packages }}\`" >> $GITHUB_STEP_SUMMARY + fi + + if [ "${{ steps.update-opencode.outputs.opencode_update }}" = "true" ]; then + HAS_UPDATES="true" + echo "" >> $GITHUB_STEP_SUMMARY + echo "## Updated Flake Input" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "- **opencode**: \`v${{ steps.update-opencode.outputs.opencode_version }}\`" >> $GITHUB_STEP_SUMMARY + fi + + if [ "$HAS_UPDATES" = "true" ]; then echo "" >> $GITHUB_STEP_SUMMARY echo "## Status" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY - echo "- â All packages validated with \`nix flake check\`" >> $GITHUB_STEP_SUMMARY - echo "- â All packages built successfully" >> $GITHUB_STEP_SUMMARY + echo "- â All updates validated with \`nix flake check\`" >> $GITHUB_STEP_SUMMARY + echo "- â All builds successful" >> $GITHUB_STEP_SUMMARY echo "- â Changes pushed to master" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo "## Workflow Performance" >> $GITHUB_STEP_SUMMARY @@ -332,5 +419,5 @@ jobs: else echo "# âšī¸ No Updates Required" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY - echo "No package updates found this run. All packages are up to date." >> $GITHUB_STEP_SUMMARY + echo "No updates found this run. All packages and flake inputs are up to date." >> $GITHUB_STEP_SUMMARY fi