Files
spring-cloud-app-broker/scripts/set-pipelines.sh
2025-02-05 10:58:15 -05:00

80 lines
2.1 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
readonly FLY_TARGET="${FLY_TARGET:-"app-broker"}"
readonly PIPELINE_NAME_SUFFIX="${PIPELINE_NAME_SUFFIX:-""}"
readonly PIPELINE_TYPE=${1:-""}
set_branch_pipeline() {
local -r pipeline_name="app-broker${PIPELINE_NAME_SUFFIX:+"-$PIPELINE_NAME_SUFFIX"}"
local -r branches=("2.4.x" "2.3.x" "2.2.x" "2.1.x" "2.0.x" "1.6.x")
for branch in "${branches[@]}"; do
echo "Setting $pipeline_name $branch pipeline..."
fly --target "$FLY_TARGET" set-pipeline \
--pipeline "$pipeline_name" \
--config pipeline.yml \
--load-vars-from config-concourse.yml \
--instance-var "branch=$branch" \
--var "ci-image-tag=$branch" \`
done
}
set_pr_manager_pipeline() {
local -r pipeline_name="app-broker-pull-requests${PIPELINE_NAME_SUFFIX:+"-$PIPELINE_NAME_SUFFIX"}"
local -r branch="2.3.x"
echo "Setting PR manager pipeline..."
fly --target "$FLY_TARGET" set-pipeline --pipeline "$pipeline_name" \
--config pr-manager-pipeline.yml \
--load-vars-from config-concourse.yml \
--var ci-image-tag="$branch" \
--var "branch=$branch" \
--var pipeline-name="$pipeline_name"
}
set_pr_pipeline() {
local -r pr_number="${1:?first argument must be the PR number}"
local -r pipeline_name="app-broker-pr-$pr_number${PIPELINE_NAME_SUFFIX:+"-$PIPELINE_NAME_SUFFIX"}"
echo "Setting PR pipeline for PR $pr_number..."
local -r pr_info="$(gh pr view "$pr_number" --json baseRefName,headRefOid)"
fly --target "$FLY_TARGET" set-pipeline --pipeline "$pipeline_name" \
--config pr-pipeline.yml \
--load-vars-from config-concourse.yml \
--var ci-image-tag="pr-test" \
--var pipeline-name="$pipeline_name" \
--var pr.number="$pr_number" \
--var pr.base-branch="$(jq -r '.baseRefName' <<< "$pr_info")" \
--var pr.commit="$(jq -r '.headRefOid' <<< "$pr_info")"
}
main() {
pushd "$(dirname "$0")/../ci" >/dev/null
case "${PIPELINE_TYPE#--}" in
"branch")
set_branch_pipeline
;;
"pr-manager")
set_pr_manager_pipeline
;;
"pr")
set_pr_pipeline "$2"
;;
*)
set_branch_pipeline
set_pr_manager_pipeline
;;
esac
popd >/dev/null
}
main "$@"