From 72e20483cbc4528c2bef363ecaf6376f6f880ecc Mon Sep 17 00:00:00 2001 From: Amolith Date: Wed, 29 Oct 2025 12:26:29 -0600 Subject: [PATCH] build(release): add fork command --- Taskfile.yaml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/Taskfile.yaml b/Taskfile.yaml index 514f9bc2190f8e73c1ddb955dd84eefe6ff376e7..fb10b4305a586eb892119437076e754197ba3a47 100644 --- a/Taskfile.yaml +++ b/Taskfile.yaml @@ -115,3 +115,32 @@ tasks: cmds: - git tag -d nightly || true - git fetch --tags + + release:fork: + desc: Create and push a fork release tag + vars: + UPSTREAM_VERSION: + sh: git describe --tags --abbrev=0 upstream/main 2>/dev/null || echo "v0.0.0" + FORK_VERSION: + sh: | + UP=$(git describe --tags --abbrev=0 upstream/main 2>/dev/null | sed 's/^v//' || echo "0.0.0") + MAJOR=$(echo $UP | cut -d. -f1) + MINOR=$(echo $UP | cut -d. -f2) + PATCH=$(echo $UP | cut -d. -f3) + NEXT_PATCH=$((PATCH + 1)) + # Count existing fork tags for this base version + EXISTING=$(git tag -l "v$MAJOR.$MINOR.$NEXT_PATCH" "v$MAJOR.$MINOR.$((NEXT_PATCH+1))" "v$MAJOR.$MINOR.$((NEXT_PATCH+2))" | wc -l) + echo "v$MAJOR.$MINOR.$((NEXT_PATCH + EXISTING))" + TAG: "{{.FORK_VERSION}}" + prompt: "Create fork release {{.TAG}}?" + preconditions: + - sh: '[ $(git symbolic-ref --short HEAD) = "dev" ]' + msg: Not on dev branch + - sh: "[ $(git status --porcelain=2 | wc -l) = 0 ]" + msg: "Git is dirty" + cmds: + - git tag -d nightly || true + - git fetch upstream --tags + - git tag -a {{.TAG}} + - git push soft {{.TAG}} + - echo "Released {{.TAG}}"