Are there any instructions on recording Jenkins generated data as deployment events in Compass? My attempts to input these via REST API have been unsuccessful. I'm trying to add this within a component thats linked to a bitbucket cloud repo.
Hi @hpatel21 and @Phill Pafford
There is a way to send Jenkins build data via a curl command. Shoutout to @Dave Parrish _Atlassian_ for investigating this.
The pre-conditions are that there is a Github post-commit hook that runs the following script that triggers a Jenkins build.
export BUILD_START_TIME=$(date -u +'%Y-%m-%dT%H:%M:%SZ')
echo "Starting Website build #{$BUILD_NUMBER} at ${BUILD_START_TIME}"
sleep 2s
export BUILD_FINISH_TIME=$(date -u +'%Y-%m-%dT%H:%M:%SZ')
curl \
--request POST \
--url https://<atlassian-site>.atlassian.net/gateway/api/compass/v1/events \
--user "${ATLASSIAN_API_CREDENTIALS}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data "{
\"cloudId\": \"ca4d6d1f-c9de-431f-9a40-6682e1968a11\",
\"event\": {
\"build\": {
\"updateSequenceNumber\": ${BUILD_NUMBER},
\"displayName\": \"Website build ${BUILD_NUMBER}\",
\"description\": \"Build ${BUILD_NUMBER} of Website\",
\"url\": \"${BUILD_URL}\",
\"lastUpdated\": \"${BUILD_FINISH_TIME}\",
\"externalEventSourceId\": \"<your-jenkins-source-id>\",
\"buildProperties\": {
\"state\": \"SUCCESSFUL\",
\"pipeline\": {
\"pipelineId\": \"${BUILD_NUMBER}\",
\"url\": \"${BUILD_URL}\",
\"displayName\": \"Pipeline ${BUILD_NUMBER} of Website\"
},
\"startedAt\": \"${BUILD_START_TIME}\",
\"completedAt\": \"${BUILD_FINISH_TIME}\"
}
}
}
}"
echo "Finished Website build #{$BUILD_NUMBER} at ${BUILD_FINISH_TIME}"
Hi Andy,
I have the exact same curl command, the only thing that differs is the `externalEventSourceId` but all I ever get is this response, any chance you ran into this and have a solution to solve it?
NOTE: I did follow the graphql commands and created the custom event type
{
"errors": [
{
"type": "CREATE_EVENT_SOURCE_NOT_FOUND",
"message": "We could not create the event because the event source is not found. Please check that the external event source ID and the type of event being submitted match the event source.If a Forge App ID was used during event source creation, please also check you are using the same Forge App ID when accessing the event source."
}
]
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
HI Phill, is the external event source ID you added correct? It looks like the request is incorrect or potentially permissions are not available for that said external source ID.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
thanks Andy, I found my issue, I was using the ARN and not the static name I assign it
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks, I was finally able to publish data calling the API using curl. The problem was with publishing to development environment instead of staging/production. Looks like development/testing environments are not supported out of the box.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I'm also looking for this as well. I did see some related repos that are interesting
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.