Skills Development Push Code And Trigger CI Pipeline

Push Code And Trigger CI Pipeline

v20260730
ci-pipeline
This script automates the Git push process, ensuring safety checks (e.g., preventing direct pushes to main branches) and verifying uncommitted changes. Upon successful push, it dynamically generates and displays direct tracking links for CI pipelines on major platforms like GitLab and GitHub Actions, providing immediate status updates for development teams.
Get Skill
112 downloads
Overview

/ci:pipeline: Push and trigger pipeline

Pushes the current branch and returns the pipeline tracking link.

Process

BRANCH=$(git branch --show-current)

# 1. Safety checks
if echo "$BRANCH" | grep -qE "^(main|master|production)$"; then
  echo "❌ Direct push to $BRANCH is not allowed. Create a feature/fix branch."
  exit 1
fi

# 2. Check for uncommitted changes
UNCOMMITTED=$(git status --porcelain | wc -l | tr -d ' ')
if [ "$UNCOMMITTED" -gt 0 ]; then
  echo "⚠️  $UNCOMMITTED uncommitted file(s):"
  git status --short
  echo ""
  echo "Commit first with /commit or git add + git commit"
  exit 0
fi

# 3. Push
echo "Pushing → origin/$BRANCH"
git push origin "$BRANCH" 2>&1

Pipeline URL

GitLab CI

REMOTE=$(git remote get-url origin 2>/dev/null || echo "")
WEB_URL=$(echo "$REMOTE" | sed 's/git@gitlab\.com:/https:\/\/gitlab.com\//' | sed 's/\.git$//')
echo ""
echo "✅ Push OK"
echo "   Pipeline: $WEB_URL/-/pipelines?ref=$BRANCH"

# Live status via glab (if installed)
if command -v glab &>/dev/null; then
  sleep 3
  glab ci status --branch "$BRANCH" 2>/dev/null || true
fi

GitHub Actions

REMOTE=$(git remote get-url origin 2>/dev/null || echo "")
WEB_URL=$(echo "$REMOTE" | sed 's/git@github\.com:/https:\/\/github.com\//' | sed 's/\.git$//')
echo ""
echo "✅ Push OK"
echo "   Actions: $WEB_URL/actions?query=branch%3A$BRANCH"

# Live status via gh (if installed)
if command -v gh &>/dev/null; then
  sleep 5
  gh run list --branch "$BRANCH" --limit 3 2>/dev/null || true
fi

Expected output

Pushing → origin/feat/add-payment-retry

Enumerating objects: 12, done.
...

✅ Push OK
   Pipeline: https://gitlab.com/org/my-app/-/pipelines?ref=feat/add-payment-retry

Pipeline status (after 3s):
  ⏳ lint       running
  ⏸️  test       waiting
  ⏸️  deploy     waiting

Usage

/ci:pipeline

Target: $ARGUMENTS

Info
Category Development
Name ci-pipeline
Version v20260730
Size 2.1KB
Updated At 2026-08-04
Language