diff --git a/.github/actions/milestone-it/entrypoint.sh b/.github/actions/milestone-it/entrypoint.sh index 835875dc61a1b..2f06c892df3a0 100755 --- a/.github/actions/milestone-it/entrypoint.sh +++ b/.github/actions/milestone-it/entrypoint.sh @@ -1,7 +1,16 @@ #!/bin/bash set -e -# 1. Determine if milestone already exists (don't replace one which has already +# 1. Proceed only when merge occurs to `master` base branch. + +base=$(jq -r '.pull_request.base.ref' $GITHUB_EVENT_PATH) + +if [ "$base" != 'master' ]; then + echo 'Milestones apply only to master merge. Aborting.' + exit 78; +fi + +# 2. Determine if milestone already exists (don't replace one which has already # been assigned). pr=$(jq -r '.number' $GITHUB_EVENT_PATH) @@ -16,18 +25,18 @@ current_milestone=$( if [ "$current_milestone" != 'null' ]; then echo 'Milestone already applied. Aborting.' - exit 1; + exit 78; fi -# 2. Read current version. +# 3. Read current version. -version=$(jq -r '.version' package.json) +version=$(git show master:package.json | jq -r '.version') IFS='.' read -ra parts <<< "$version" major=${parts[0]} minor=${parts[1]} -# 3. Determine next milestone. +# 4. Determine next milestone. if [[ $minor == 9* ]]; then major=$((major+1)) @@ -38,7 +47,7 @@ fi milestone="Gutenberg $major.$minor" -# 4. Calculate next milestone due date, using a static reference of an earlier +# 5. Calculate next milestone due date, using a static reference of an earlier # release (v5.0) as a reference point for the biweekly release schedule. reference_major=5 @@ -48,7 +57,7 @@ num_versions_elapsed=$(((major-reference_major)*10+(minor-reference_minor))) weeks=$((num_versions_elapsed*2)) due=$(date -u --iso-8601=seconds -d "$(date -d @$(echo $reference_date)) + $(echo $weeks) weeks") -# 5. Create milestone. This may fail for duplicates, which is expected and +# 6. Create milestone. This may fail for duplicates, which is expected and # ignored. curl \ @@ -59,7 +68,7 @@ curl \ -d "{\"title\":\"$milestone\",\"due_on\":\"$due\",\"description\":\"Tasks to be included in the $milestone plugin release.\"}" \ "https://api.github.com/repos/$GITHUB_REPOSITORY/milestones" > /dev/null -# 6. Find milestone number. This could be improved to allow for non-open status +# 7. Find milestone number. This could be improved to allow for non-open status # or paginated results. number=$( @@ -70,7 +79,7 @@ number=$( | jq ".[] | select(.title == \"$milestone\") | .number" ) -# 7. Assign pull request to milestone. +# 8. Assign pull request to milestone. curl \ --silent \