You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
boundary/scripts/trigger-merge-to-downstream...

52 lines
1.1 KiB

#!/usr/bin/env bash
BRANCH=${1}
if [[ -z "${BRANCH}" ]]; then
echo "skipping no branch specified"
exit 0
fi
if [[ -z "${DOWNSTREAM_SLUG}" ]]; then
echo "skipping, no downstream"
exit 0
fi
if [[ -z ${DOWNSTREAM_TOK} ]]; then
exit 0
fi
if [[ -z ${DOWNSTREAM_WORKFLOW} ]]; then
echo "skipping, no downstream workflow"
exit 0
fi
CURL_RESPONSE=$(curl \
--silent \
-w '%{http_code}\n' \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${DOWNSTREAM_TOK}" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/repos/hashicorp/boundary-${DOWNSTREAM_SLUG}/actions/workflows/${DOWNSTREAM_WORKFLOW}/dispatches" \
-d @- << EOF
{
"ref": "${BRANCH}",
"inputs": {
"from-branch": "${BRANCH}",
"to-branch": "${BRANCH}"
}
}
EOF
)
echo $CURL_RESPONSE
# Get the first digit of the status code (get the last word of the last line,
# and then get the first character of that word)
CURL_STATUS_CODE=$(echo "$CURL_RESPONSE" | tail -n1 | awk '{print $NF}' | cut -c1)
if [[ $CURL_STATUS_CODE -ne 2 ]]; then
echo "ERROR: failed to trigger downstream workflow"
exit 1
fi