Skip to content

Commit

Permalink
added pre-checkout hook that automatically should enter pre modes (#5837
Browse files Browse the repository at this point in the history
)

* added pre-checkout hook that automatically should enter pre modes for changesets

* aswitch to github CI action for changeset check
  • Loading branch information
bdbch authored Nov 17, 2024
1 parent 3310af0 commit d9ad0fb
Show file tree
Hide file tree
Showing 2 changed files with 69 additions and 0 deletions.
Empty file.
69 changes: 69 additions & 0 deletions scripts/manage-pre-mode.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
#!/bin/bash

# Detect the branch from argument
BRANCH=$(echo "$1")

PRE_PATH=".changeset/pre.json"

pre_json_exists=false
is_on_tag=false
is_on_pre_mode=false

grep -q '"mode": "pre"' "$PRE_PATH" && is_on_pre_mode=true || is_on_pre_mode=false

if [ -f "$PRE_PATH" ]; then
pre_json_exists=true
fi

enter_pre_mode() {
local branch="$1"
local tag="$2"

grep -q '"tag": "'$tag'"' "$PRE_PATH" && is_on_tag=true || is_on_tag=false

if $is_on_tag && $pre_json_exists && $is_on_pre_mode; then
echo "You are already in pre mode for '$tag' on '$branch'"
exit 1
fi

npx changeset pre exit
npx changeset pre enter "$tag"

# Set needs_commit to true on github env
echo "needs_commit=true" >> $GITHUB_ENV

echo "Entered pre mode for '$branch' on '$tag'"
}

exit_pre_mode() {
local needs_exit=false

grep -q '"mode": "exit"' "$PRE_PATH" && needs_exit=false || needs_exit=true

if ! $needs_exit || ! $pre_json_exists; then
echo "You are not in pre mode"
exit 1
fi

npx changeset pre exit

# Set needs_commit to true on github env
echo "needs_commit=true" >> $GITHUB_ENV

echo "Exited pre mode"
}

case "$BRANCH" in
develop)
enter_pre_mode "develop" "pre"
;;
next)
enter_pre_mode "next" "next"
;;
main)
exit_pre_mode
;;
*)
exit 1
;;
esac

0 comments on commit d9ad0fb

Please sign in to comment.