chore: split release:fork into tag and push tasks

Amolith created

- Separate the tagging and pushing steps for fork releases\n- Add a
  combined release:fork task that runs both steps\n- Create new
  release:fork:push task for pushing existing tags\n- Update prompt
  messages for clarity\n- Add descriptive echo messages for each stage

Change summary

Taskfile.yaml | 24 ++++++++++++++++++++++--
1 file changed, 22 insertions(+), 2 deletions(-)

Detailed changes

Taskfile.yaml 🔗

@@ -125,7 +125,13 @@ tasks:
       - git fetch --tags
 
   release:fork:
-    desc: Create and push a fork release tag
+    desc: Create and push a fork release tag (combined workflow)
+    cmds:
+      - task: release:fork:tag
+      - task: release:fork:push
+
+  release:fork:tag:
+    desc: Create a fork release tag locally (without pushing)
     vars:
       UPSTREAM_VERSION:
         sh: git describe --tags --abbrev=0 upstream/main 2>/dev/null || echo "v0.0.0"
@@ -154,6 +160,20 @@ tasks:
             TAG: "{{.TAG}}"
       - task: release:fork:confirm
       - git tag -a {{.TAG}}
+      - echo "Tagged {{.TAG}} locally. Run 'task release:fork:push' to push."
+
+  release:fork:push:
+    desc: Push an existing fork release tag and notify module proxy
+    vars:
+      TAG:
+        sh: git describe --tags --abbrev=0 --match "*-fork.*" 2>/dev/null || echo ""
+    preconditions:
+      - sh: '[ -n "{{.TAG}}" ]'
+        msg: "No fork tag found. Run 'task release:fork:tag' first."
+      - sh: 'git tag -l "{{.TAG}}" | grep -q "{{.TAG}}"'
+        msg: "Tag {{.TAG}} does not exist locally"
+    prompt: "Push {{.TAG}} to remote and notify module proxy?"
+    cmds:
       - git push soft {{.TAG}}
       - echo "Released {{.TAG}}"
       - go list -m git.secluded.site/crush@{{.TAG}} > /dev/null
@@ -162,7 +182,7 @@ tasks:
   release:fork:confirm:
     desc: Review LLM-generated commit and confirm release
     internal: true
-    prompt: "Proceed with release?"
+    prompt: "Proceed with tagging?"
 
   release:fork:cleanup:
     desc: Undo LLM commit if release aborted