feat: add publish script to merge dev changes into main
This commit is contained in:
Executable
+59
@@ -0,0 +1,59 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
current_branch=$(git branch --show-current)
|
||||||
|
|
||||||
|
if [ -z "$current_branch" ]; then
|
||||||
|
echo "Erreur : impossible de détecter la branche courante."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$current_branch" = "main" ]; then
|
||||||
|
echo "Erreur : ce script ne peut pas être exécuté depuis la branche main."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
start_branch="$current_branch"
|
||||||
|
|
||||||
|
cleanup() {
|
||||||
|
if [ "$(git branch --show-current)" != "$start_branch" ]; then
|
||||||
|
git checkout "$start_branch" >/dev/null 2>&1 || true
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
merge_or_fail() {
|
||||||
|
source_branch="$1"
|
||||||
|
target_branch="$2"
|
||||||
|
|
||||||
|
if ! git merge "$source_branch"; then
|
||||||
|
echo "Erreur : conflit lors du merge de $source_branch vers $target_branch."
|
||||||
|
echo "Résolvez les conflits manuellement, puis relancez le script."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
trap cleanup EXIT
|
||||||
|
|
||||||
|
echo "Branche courante détectée : $current_branch"
|
||||||
|
read -r -p "Confirmer l'exécution sur cette branche ? [y/N] " confirm
|
||||||
|
case "$confirm" in
|
||||||
|
y|Y|yes|YES)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Annulé."
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ "$current_branch" != "dev" ]; then
|
||||||
|
git checkout dev
|
||||||
|
merge_or_fail "$current_branch" "dev"
|
||||||
|
git push
|
||||||
|
current_branch="dev"
|
||||||
|
fi
|
||||||
|
|
||||||
|
git checkout main
|
||||||
|
merge_or_fail dev main
|
||||||
|
git push
|
||||||
|
git checkout dev
|
||||||
Reference in New Issue
Block a user