Enhance update-cursor.sh and GitHub Actions workflow for improved version handling

- Added CURSOR_VERSION_INFO output to track update status in update-cursor.sh
- Implemented auto-confirmation for updates when running in CI mode
- Updated GitHub Actions workflow to capture and utilize CURSOR_VERSION_INFO for conditional commits
- Improved commit message generation based on actual version updates
This commit is contained in:
TudorAndrei
2025-10-19 19:05:17 +03:00
parent 635dc5ea19
commit 384774c6ce
2 changed files with 43 additions and 7 deletions
+29 -3
View File
@@ -23,12 +23,18 @@ jobs:
nix_path: nixpkgs=channel:nixpkgs-unstable
- name: Update Cursor using script
id: update-cursor
run: |
# Make the script executable
chmod +x update-cursor.sh
# Run the update script with auto-confirm
echo "y" | ./update-cursor.sh
# Run the update script (it will auto-confirm in CI mode)
./update-cursor.sh
# Capture version info from script output
if [[ -f "$GITHUB_OUTPUT" ]]; then
grep "CURSOR_VERSION_INFO=" "$GITHUB_OUTPUT" || echo "CURSOR_VERSION_INFO=no_update" >> "$GITHUB_OUTPUT"
fi
- name: Update flake lock file
run: |
@@ -41,15 +47,35 @@ jobs:
- name: Commit and push changes
run: |
# Get version info from the update step
VERSION_INFO="${{ steps.update-cursor.outputs.CURSOR_VERSION_INFO }}"
# Only commit if there was an actual update
if [[ "$VERSION_INFO" == "no_update" ]]; then
echo "No Cursor update needed, skipping commit"
exit 0
fi
# Check if there are any changes to commit
if git diff --quiet; then
echo "No changes to commit"
exit 0
fi
# Create commit message based on version info
if [[ "$VERSION_INFO" == completed:* ]]; then
# Extract version from format: completed:old_version:new_version
NEW_VERSION=$(echo "$VERSION_INFO" | cut -d: -f3)
COMMIT_MSG="Update Cursor to version $NEW_VERSION"
else
COMMIT_MSG="Update Cursor to latest version"
fi
echo "Commit message: $COMMIT_MSG"
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git add flake.nix flake.lock
git commit -m "Update Cursor to latest version"
git commit -m "$COMMIT_MSG"
git push
+14 -4
View File
@@ -103,24 +103,34 @@ main() {
# Check if update is needed
if [[ "$target_version" == "$current_version" ]]; then
echo "No update needed. Current version is up to date."
echo "CURSOR_VERSION_INFO=no_update" >> "$GITHUB_OUTPUT" 2>/dev/null || true
exit 0
fi
echo "Update needed: $current_version -> $target_version"
read -p "Do you want to proceed with the update? (y/N): " -n 1 -r
echo
echo "CURSOR_VERSION_INFO=updated:$current_version:$target_version" >> "$GITHUB_OUTPUT" 2>/dev/null || true
# Check if running in CI/GitHub Actions (auto-confirm)
if [[ -n "${CI:-}" ]] || [[ -n "${GITHUB_ACTIONS:-}" ]]; then
echo "Running in CI mode, auto-confirming update..."
REPLY="y"
else
read -p "Do you want to proceed with the update? (y/N): " -n 1 -r
echo
fi
if [[ $REPLY =~ ^[Yy]$ ]]; then
update_flake "$target_version"
test_flake
echo "Update completed successfully!"
echo "CURSOR_VERSION_INFO=completed:$current_version:$target_version" >> "$GITHUB_OUTPUT" 2>/dev/null || true
echo "You can now commit the changes:"
echo " git add flake.nix"
echo " git commit -m \"Update Cursor to version $target_version\""
else
echo "Update cancelled."
exit 1
fi
exit 1
fi
}
# Check dependencies