Some checks failed
Monorepo Pipeline / ⚡ Prioritize Release (push) Successful in 2s
Monorepo Pipeline / 🚀 Release (push) Has been cancelled
Monorepo Pipeline / 🧹 Lint (push) Has been cancelled
Monorepo Pipeline / 🏗️ Build (push) Has been cancelled
Monorepo Pipeline / 🐳 Build Directus (Base) (push) Has been cancelled
Monorepo Pipeline / 🐳 Build Gatekeeper (Product) (push) Has been cancelled
Monorepo Pipeline / 🐳 Build Build-Base (push) Has been cancelled
Monorepo Pipeline / 🧪 Test (push) Has been cancelled
Monorepo Pipeline / 🐳 Build Production Runtime (push) Has been cancelled
33 lines
1.1 KiB
Plaintext
Executable File
33 lines
1.1 KiB
Plaintext
Executable File
# Check if we are pushing a tag
|
|
while read local_ref local_sha remote_ref remote_sha
|
|
do
|
|
if [[ "$remote_ref" == refs/tags/v* ]]; then
|
|
TAG=${remote_ref#refs/tags/}
|
|
echo "🏷️ Tag detected: $TAG, ensuring versions are synced..."
|
|
|
|
# Run sync script
|
|
pnpm sync-versions "$TAG"
|
|
|
|
# Check for changes in relevant files
|
|
SYNC_FILES="package.json packages/*/package.json apps/*/package.json .env.example"
|
|
CHANGES=$(git status --porcelain $SYNC_FILES)
|
|
|
|
if [[ -n "$CHANGES" ]]; then
|
|
echo "📝 Version sync made changes. Integrating into tag..."
|
|
|
|
# Stage and commit
|
|
git add $SYNC_FILES
|
|
git commit -m "chore: sync versions to $TAG [skip ci]" --no-verify
|
|
|
|
# Force update the local tag to point to the new commit
|
|
git tag -f "$TAG" > /dev/null
|
|
|
|
echo "✅ Tag $TAG has been updated locally with synced versions."
|
|
echo "🚀 Please run your push command again."
|
|
exit 1 # Abort push to let user re-push the corrected tag
|
|
else
|
|
echo "✨ Versions already in sync for $TAG."
|
|
fi
|
|
fi
|
|
done
|