#!/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