-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Spinnaker account #101
base: master
Are you sure you want to change the base?
Spinnaker account #101
Conversation
b4e1a93
to
a98671e
Compare
.circleci/config.yml
Outdated
for PIPELINE in << parameters.pipelines_to_trigger >> ; do | ||
echo "Triggering pipeline with source $PIPELINE" | ||
EVENT_ID=`curl -s -X POST -H "content-type: application/json" -d "{ }" http://spinnaker/api/v1/webhooks/webhook/$PIPELINE | jq -r .eventId` | ||
echo "eventId: $EVENT_ID" | ||
sleep 5 # Let pipeline start | ||
PASS=`cat ~/.hal/default/profiles/gate-local.yml | grep password` | ||
PASS=${PASS#*:\ } | ||
USER=`cat ~/.hal/default/profiles/gate-local.yml | grep name` | ||
USER=${USER#*:\ } | ||
ALL_APPS=`curl -s -X GET --user "$USER:$PASS" "http://spinnaker/api/v1/applications" | jq -r .[].name` | ||
MAX_ATTEMPTS=20 | ||
for APP in $ALL_APPS ; do | ||
PIPELINE_NAME=`curl -s -X GET --user "$USER:$PASS" "http://spinnaker/api/v1/applications/$APP/executions/search?triggerTypes=webhook&eventId=$EVENT_ID" | jq -r .[].name` | ||
ATTEMPTS=0 | ||
while [[ $PIPELINE_NAME != "" ]] && [ $ATTEMPTS -lt $MAX_ATTEMPTS ] ; do | ||
echo "Checking pipeline $PIPELINE_NAME status" | ||
STATUS=`curl -s -X GET --user "$USER:$PASS" "http://spinnaker/api/v1/applications/$APP/executions/search?triggerTypes=webhook&eventId=$EVENT_ID" | jq -r .[].status` | ||
if [ -n $STATUS ] && [[ $STATUS == "NOT_STARTED" ]] ; then | ||
echo "Waiting for pipeline $PIPELINE_NAME to start" | ||
sleep 3 | ||
elif [ -n $STATUS ] && [[ $STATUS == "RUNNING" ]] ; then | ||
echo "Waiting for pipeline $PIPELINE_NAME to finish" | ||
sleep 3 | ||
elif [ -n $STATUS ] && [[ $STATUS != "SUCCEEDED" ]] ; then | ||
echo "Pipeline $PIPELINE_NAME exited with status $STATUS" | ||
exit 1 | ||
elif [ -n $STATUS ] && [[ $STATUS == "SUCCEEDED" ]] ; then | ||
echo "$Pipeline PIPELINE_NAME succeded" | ||
break | ||
else | ||
echo "Status of pipeline is: $STATUS" | ||
exit 1 | ||
fi | ||
((++ATTEMPTS)) | ||
done | ||
if [ $ATTEMPTS -ge $MAX_ATTEMPTS ] ; then | ||
echo "Check timed out" | ||
exit 1 | ||
fi | ||
done | ||
done |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you move this to a script? You can store it in .circleci
directory.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did.
But I have no idea, why there is such behaviour:
When executed by cirleci, it's not entering the while loop (not printing Checking pipeline $PIPELINE_NAME status; PIPELINE_NAME probably equals ""), but when I rerun job with ssh, and execute script from terminal on machine, it iterates. Do you have any suggestions?
feaf44f
to
54e1faa
Compare
c5dbd11
to
446f514
Compare
Added possibility to trigger pipelines in spinnaker
Granted to spinnaker privileges to deploy to kind