52 lines
1.1 KiB
Bash
Executable File
52 lines
1.1 KiB
Bash
Executable File
#!/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
|