debian-mirror-gitlab/spec/contracts/publish-contracts.sh

52 lines
1.3 KiB
Bash
Raw Normal View History

2023-01-13 00:05:48 +05:30
LATEST_SHA=$(git rev-parse HEAD)
GIT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
BROKER_BASE_URL="http://localhost:9292"
2023-03-17 16:20:25 +05:30
cd "${0%/*}" || exit 1
2023-01-13 00:05:48 +05:30
function catch() {
printf "\e[31mAn error occured while trying to publish the pact.\033[0m\n"
ERROR=1
}
2023-03-17 16:20:25 +05:30
function publish_contract () {
CONTRACTS=$(find ./contracts -name "*.json")
ERROR=0
trap 'catch' ERR
for contract in $CONTRACTS
do
printf "\e[32mPublishing %s...\033[0m\n" "$contract"
pact-broker publish "$contract" --consumer-app-version "$LATEST_SHA" --branch "$GIT_BRANCH" --broker-base-url "$BROKER_BASE_URL" --output json
done
if [ ${ERROR} = 1 ]; then
exit 1;
fi
}
function publish_ce_contracts () {
publish_contract
}
function publish_ee_contracts () {
cd "../../ee/spec/contracts" || exit 1
publish_contract
}
2023-01-13 00:05:48 +05:30
2023-03-17 16:20:25 +05:30
if [ $1 = "ce" ]; then
printf "\e[32mPublishing CE contracts...\033[0m\n"
publish_ce_contracts
elif [ $1 = "ee" ]; then
printf "\e[32mPublishing EE contracts...\033[0m\n"
publish_ee_contracts
elif [ $1 = "all" ]; then
printf "\e[32mPublishing all contracts...\033[0m\n"
publish_ce_contracts
publish_ee_contracts
else
printf "\e[31mInvalid argument. Please choose either \"ce\", \"ee\", or \"all\".\033[0m\n"
2023-01-13 00:05:48 +05:30
exit 1;
2023-03-17 16:20:25 +05:30
fi