1
0
mirror of https://github.com/hustcer/deepseek-review.git synced 2026-05-13 05:16:05 +08:00
Files
deepseek-review/nu/release.nu
Justin Ma 92a3c2ae17 fix: Try to fix workflow error for Nu 0.111 (#197)
* fix: Try to fix workflow error for Nu 0.111

* chore: Update readme
2026-02-09 10:41:14 +08:00

55 lines
2.0 KiB
Plaintext

#!/usr/bin/env nu
# Author: hustcer
# Created: 2025/01/29 12:56:56
# Description: Script to release deepseek-review
#
# TODO:
# [√] Make sure the release tag does not exist;
# [√] Make sure there are no uncommitted changes;
# [√] Update change log if required;
# [√] Create a release tag and push it to the remote repo;
# Usage:
# Change `version` in meta.json and then run: `just release` OR `just release -u`
export def 'make-release' [
--update-log(-u) # Add flag to enable updating CHANGELOG.md
] {
cd $env.DEEPSEEK_REVIEW_PATH
let releaseVer = (open meta.json | get actionVer)
if (has-ref $releaseVer) {
echo $'The version ($releaseVer) already exists, Please choose another version.(char nl)'
exit 5
}
let majorTag = $releaseVer | split row '.' | first
let statusCheck = (git status --porcelain)
if not ($statusCheck | is-empty) {
echo $'You have uncommitted changes, please commit them and try `release` again!(char nl)'
exit 5
}
if ($update_log) {
git cliff --unreleased --tag $releaseVer --prepend CHANGELOG.md;
git commit CHANGELOG.md -m $'update CHANGELOG.md for ($releaseVer)'
}
# Delete tags that not exist in remote repo
git fetch origin --prune '+refs/tags/*:refs/tags/*'
let commitMsg = $'A new release for version: ($releaseVer) created by Release command of deepseek-review.'
git tag $releaseVer -am $commitMsg;
# Remove local major version tag if exists and ignore errors
do -i { git tag -d $majorTag | complete | ignore }
git checkout $releaseVer; git tag $majorTag
git push origin $majorTag $releaseVer --force
}
# Check if a git repo has the specified ref: could be a branch or tag, etc.
export def has-ref [
ref: string # The git ref to check
] {
# Put `complete` inside `do` block to avoid pipefail error in Nushell 0.110+
let checkRepo = (do { git rev-parse --is-inside-work-tree | complete })
if not ($checkRepo.stdout =~ 'true') { return false }
let parse = (do { git rev-parse --verify -q $ref | complete })
if ($parse.stdout | is-empty) { false } else { true }
}