更新 Gitea CI/CD 触发逻辑,支持通过标签触发

This commit is contained in:
2026-05-19 11:31:38 +08:00
parent ebb0743fcb
commit baec7940a5
3 changed files with 17 additions and 19 deletions
+14 -9
View File
@@ -3,12 +3,13 @@
set -euo pipefail
if [[ "${1:-}" == "-h" || "${1:-}" == "--help" ]]; then
echo "Usage: bash scripts/trigger-gitea-pipeline.sh [remote] [branch]"
echo "Usage: bash scripts/trigger-gitea-pipeline.sh [remote] [tag]"
echo ""
echo "Examples:"
echo " bash scripts/trigger-gitea-pipeline.sh"
echo " bash scripts/trigger-gitea-pipeline.sh gitea main"
echo " bash scripts/trigger-gitea-pipeline.sh origin main"
echo " bash scripts/trigger-gitea-pipeline.sh gitea latest"
echo " bash scripts/trigger-gitea-pipeline.sh origin latest"
echo " bash scripts/trigger-gitea-pipeline.sh gitea v2026.05.19.1"
exit 0
fi
@@ -27,7 +28,7 @@ resolve_default_remote() {
}
REMOTE="${1:-}"
BRANCH="${2:-main}"
TAG="${2:-latest}"
if ! git rev-parse --git-dir >/dev/null 2>&1; then
echo "[ERROR] Current directory is not a git repository."
@@ -51,12 +52,16 @@ if ! git remote get-url "$REMOTE" >/dev/null 2>&1; then
fi
HEAD_SHA="$(git rev-parse --short HEAD)"
MESSAGE="manual trigger: ${TAG} $(date '+%F %T')"
echo "[INFO] HEAD: ${HEAD_SHA}"
echo "[INFO] Force-push HEAD to remote branch '${BRANCH}'"
git push "$REMOTE" "HEAD:refs/heads/${BRANCH}" --force
echo "[INFO] Recreate annotated tag '${TAG}'"
git tag -fa "$TAG" -m "$MESSAGE"
echo "[INFO] Verify remote branch reference"
git ls-remote "$REMOTE" "refs/heads/${BRANCH}"
echo "[INFO] Push '${TAG}' to remote '${REMOTE}' (force update)"
git push "$REMOTE" "refs/tags/${TAG}" --force
echo "[DONE] Pipeline trigger request sent by updating branch '${BRANCH}'."
echo "[INFO] Verify remote tag reference"
git ls-remote --tags "$REMOTE" "refs/tags/${TAG}"
echo "[DONE] Pipeline trigger request sent by updating tag '${TAG}'."