Skip to content

Commit 3ef5377

Browse files
committed
feat: add CD pipeline workflow for Databricks bundle deployment with PR merge verification
1 parent bd96f4c commit 3ef5377

1 file changed

Lines changed: 37 additions & 0 deletions

File tree

.github/workflows/cd.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,47 @@ env:
2323
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
2424

2525
jobs:
26+
# ──────────────────────────────────────────────────────────────
27+
# GUARD: Only deploy if push came from a PR merge, not a direct push
28+
# ──────────────────────────────────────────────────────────────
29+
verify-merge:
30+
name: Verify PR Merge (Block Direct Push Deployments)
31+
runs-on: ubuntu-latest
32+
steps:
33+
- name: Check commit is a PR merge
34+
run: |
35+
# workflow_dispatch always passes — manual deploys are intentional
36+
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
37+
echo "✅ Manual workflow_dispatch — skipping merge check"
38+
exit 0
39+
fi
40+
41+
COMMIT_MSG="${{ github.event.head_commit.message }}"
42+
echo "Commit message: $COMMIT_MSG"
43+
44+
# GitHub sets merge commit messages to "Merge pull request #N from ..."
45+
if echo "$COMMIT_MSG" | grep -qE '^Merge pull request #[0-9]+'; then
46+
echo "✅ Commit is a PR merge — deployment allowed"
47+
else
48+
echo "=============================================="
49+
echo "🚫 DEPLOYMENT BLOCKED — Direct Push Detected"
50+
echo "=============================================="
51+
echo ""
52+
echo " Pushed by : ${{ github.actor }}"
53+
echo " Commit SHA: ${{ github.sha }}"
54+
echo " Message : $COMMIT_MSG"
55+
echo ""
56+
echo "CD only runs on PR merges, not direct pushes."
57+
echo "Please open a Pull Request and merge via GitHub UI."
58+
echo "=============================================="
59+
exit 1
60+
fi
61+
2662
deploy-dev:
2763
name: Deploy to Dev
2864
runs-on: ubuntu-latest
2965
environment: dev
66+
needs: [verify-merge]
3067
steps:
3168
- uses: actions/checkout@v4
3269

0 commit comments

Comments
 (0)