Guard tag-and-mirror CI job on pushes to main
Uses push.ref against "refs/heads/main" to skip tagging and mirroring
for non-main branches. The push table exposes ref (not branch), per
the Lua bindings in src/ci/lua.rs.
Assisted-by: GLM-5.1 via pi
diff --git a/.quire/ci.fnl b/.quire/ci.fnl
index fa424b7..e60d38d 100644
--- a/.quire/ci.fnl
+++ b/.quire/ci.fnl
@@ -3,22 +3,23 @@
(job :tag-and-mirror [:quire/push]
(fn [{: sh : secret : jobs}]
- (let [{: sha} (jobs :quire/push)
- date (-> (sh "date --utc +%Y-%m-%d")
- (. :stdout)
- (: :gsub "\n$" ""))
- tag (.. :v date "+" (sha:sub 1 12))
- token (secret :github_token)
- encoded (-> (sh "printf '%s' \"$T\" | base64"
- {:env {:T (.. "x-access-token:" token)}})
- (. :stdout)
- (: :gsub "\n$" ""))
- auth-header (.. "Authorization: Basic " encoded)]
- (sh [:git :tag tag sha])
- (sh [:git
- :-c
- (.. :http.extraHeader= auth-header)
- :push
- :--porcelain
- mirror-url
- (.. :refs/tags/ tag)]))))
+ (let [{: ref : sha} (jobs :quire/push)
+ token (secret :github_token)]
+ (when (= ref "refs/heads/main")
+ (let [date (-> (sh "date --utc +%Y-%m-%d")
+ (. :stdout)
+ (: :gsub "\n$" ""))
+ tag (.. :v date "+" (sha:sub 1 12))
+ encoded (-> (sh "printf '%s' \"$T\" | base64"
+ {:env {:T (.. "x-access-token:" token)}})
+ (. :stdout)
+ (: :gsub "\n$" ""))
+ auth-header (.. "Authorization: Basic " encoded)]
+ (sh [:git :tag tag sha])
+ (sh [:git
+ :-c
+ (.. :http.extraHeader= auth-header)
+ :push
+ :--porcelain
+ mirror-url
+ (.. :refs/tags/ tag)]))))))