Created
April 19, 2020 15:56
-
-
Save zkan/cf80abb32519a7f059f13d0396fd967a to your computer and use it in GitHub Desktop.
CircleCI trigger jobs script
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# https://circleci.com/docs/2.0/api-job-trigger/ | |
function trigger_job() { | |
job_name=$1 | |
curl --user ${CIRCLE_API_TOKEN}: \ | |
--data build_parameters[CIRCLE_JOB]=$job_name \ | |
--data revision=$CIRCLE_SHA1 \ | |
https://circleci.com/api/v1.1/project/github/$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/tree/$CIRCLE_BRANCH | |
} | |
# Always compare PR commit with the recent commmit in develop | |
export CIRCLE_BRANCH_MODIFIED=${CIRCLE_BRANCH/\//_} | |
if [[ $CIRCLE_BRANCH_MODIFIED == *"pull_"* ]]; then | |
git fetch origin | |
LAST_COMMIT=$(git rev-parse origin/develop) | |
fi | |
# When merge PR, we compare with the recent commit in develop | |
if [ $CIRCLE_COMPARE_URL ]; then | |
LAST_COMMIT=$(echo ${CIRCLE_COMPARE_URL##*/} | cut -d . -f 1) | |
elif [ ! $LAST_COMMIT ]; then | |
echo $(.circleci/scripts/s3simple get s3://pronto-circleci/$CIRCLE_PROJECT_REPONAME/last_commit_develop) > last_commit_develop | |
source last_commit_develop | |
fi | |
DASHBOARD=$(git diff --name-only ${LAST_COMMIT}...${CIRCLE_SHA1} | grep ^service-dashboard | awk '{print}' ORS='') || true | |
BANGKOK=$(git diff --name-only ${LAST_COMMIT}...${CIRCLE_SHA1} | grep ^service-bangkok | awk '{print}' ORS='') || true | |
if [ ! -z "$DASHBOARD" ]; then | |
trigger_job service_dashboard | |
fi | |
if [ ! -z "$BANGKOK" ]; then | |
trigger_job service_bangkok | |
fi | |
echo "export LAST_COMMIT=$CIRCLE_SHA1" > last_commit_$CIRCLE_BRANCH_MODIFIED | |
.circleci/s3simple put s3://pronto-circleci/$CIRCLE_PROJECT_REPONAME/last_commit_$CIRCLE_BRANCH_MODIFIED last_commit_${CIRCLE_BRANCH_MODIFIED} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment