fix: remove deprecated opencode update logic
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user