#!/usr/bin/env bashset-euo pipefail# Set changeset status location# This is needed because `changeset status --output` only works with relative routesCHANGESETS_STATUS_JSON="$(realpath--relative-to=."$RUNNER_TEMP/status.json")"# Save changeset status to temp filenpx changeset status --output="$CHANGESETS_STATUS_JSON"# Defensive assertion. SHOULD NOT BE REACHEDif["$(jq '.releases | length'"$CHANGESETS_STATUS_JSON")"!= 1 ];thenecho"::error file=$CHANGESETS_STATUS_JSON::The status doesn't contain only 1 release"exit 1;fi;# Create branchBRANCH_SUFFIX="$(jq -r'.releases[0].newVersion | gsub("\\.\\d+$"; "")'$CHANGESETS_STATUS_JSON)"RELEASE_BRANCH="release-v$BRANCH_SUFFIX"git checkout -b"$RELEASE_BRANCH"# Output branchecho"branch=$RELEASE_BRANCH">>$GITHUB_OUTPUT# Enter in prerelease statenpx changeset pre enter rcgit add .git commit -m"Start release candidate"# Push branchif! git push origin "$RELEASE_BRANCH";thenecho"::error file=scripts/release/start.sh::Can't push $RELEASE_BRANCH. Did you forget to run this workflow from $RELEASE_BRANCH?"exit 1fi