github.com/m3db/m3@v1.5.1-0.20231129193456-75a402aa583b/.buildkite/scripts/adhoc_build.sh (about) 1 #!/bin/bash 2 3 set -eo pipefail 4 5 # Script to run adhoc buildkite builds for the given branch. Useful for running 6 # CI tests against branches that may not yet be ready for a PR. See 7 # https://buildkite.com/docs/apis/rest-api#authentication for more info on 8 # buildkite tokens. To take full advantage of this script your token will need 9 # `read_builds` and `write_builds` scopes. The script expects a working 10 # installation of jq. 11 12 function usage() { 13 echo "build.sh <build|list>" 14 exit 1 15 } 16 17 function build() { 18 if [[ -z "$BUILDKITE_CLI_TOKEN" ]]; then 19 echo "BUILDKITE_CLI_TOKEN must be set" 20 exit 1 21 fi 22 23 local action=$1 24 local url="https://api.buildkite.com/v2/organizations/uberopensource/pipelines/m3-monorepo-ci" 25 local auth="Authorization: Bearer $BUILDKITE_CLI_TOKEN" 26 27 if [[ "$action" != "build" && "$action" != "list" ]]; then 28 usage 29 fi 30 31 if [[ "$action" == "list" ]]; then 32 curl -sSf -H "$auth" "${url}/builds" 33 return 34 fi 35 36 # action == build 37 local branch 38 branch=$(git rev-parse --abbrev-ref HEAD) 39 40 local data 41 data=$(cat <<EOF 42 { 43 "branch": "${branch}", 44 "message": "$(git show -s --format=%s HEAD) (adhoc)", 45 "commit": "HEAD", 46 "ignore_pipeline_branch_filters": true, 47 "clean_checkout": true 48 } 49 EOF 50 ) 51 52 curl -sSf -X POST -H "$auth" "${url}/builds" -d "$data" | jq -r .web_url 53 } 54 55 build "$*"