diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3816b714500f9494717a8e6a007bc8cee94826e7..21091454209263ba8649fb515cb010d86196575a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -44,6 +44,7 @@ variables: INTERNAL_TAG: "pipeline-${CI_PIPELINE_ID}" stages: + - status-pending - config - base ## base OS image - jug ## jug container images @@ -51,6 +52,7 @@ stages: - benchmarks - test - finalize + - status-report ## only run CI for in the following cases: ## master, stable branch, release tag, MR event and nightly builds @@ -128,6 +130,32 @@ version: reports: dotenv: build.env +.status: + image: curlimages/curl:latest + before_script: [] + script: + - | + if [ -n "${GITHUB_SHA}" ] ; then + curl \ + -X POST \ + -H "Accept: application/vnd.github+json" \ + -H "Authorization: token ${GITHUB_REPO_STATUS_TOKEN}" \ + "https://api.github.com/repos/${GITHUB_REPOSITORY}/statuses/${GITHUB_SHA}" \ + -d '{"state":"'"${STATE}"'", + "target_url":"'"${CI_PIPELINE_URL}"'", + "description":"'"${DESCRIPTION} $(TZ=America/New_York date)"'", + "context":"eicweb/eic_container" + }' ; + fi + +status:pending: + stage: status-pending + extends: .status + variables: + STATE: "pending" + DESCRIPTION: "Started..." + when: always + ## base job settings for all docker interactions .docker: image: ${DOCKER_IMAGE} @@ -448,6 +476,8 @@ benchmarks:detector:default: - version - jug_xl:default variables: + GITHUB_SHA: "${GITHUB_SHA}" + GITHUB_REPOSITORY: "${GITHUB_REPOSITORY}" DETECTOR: "epic" DETECTOR_CONFIG: epic_craterlake DETECTOR_REPOSITORYURL: 'https://github.com/eic/epic.git' @@ -467,6 +497,8 @@ benchmarks:detector:nightly: - version - jug_xl:nightly variables: + GITHUB_SHA: "${GITHUB_SHA}" + GITHUB_REPOSITORY: "${GITHUB_REPOSITORY}" DETECTOR: "epic" DETECTOR_CONFIG: epic_craterlake DETECTOR_REPOSITORYURL: 'https://github.com/eic/epic.git' @@ -553,3 +585,20 @@ clean_pipeline: - docker system prune --filter until=24h --force - docker system df - docker images + +status:success: + stage: status-report + extends: .status + variables: + STATE: "success" + DESCRIPTION: "Succeeded!" + when: on_success + +status:failure: + stage: status-report + extends: .status + variables: + STATE: "failure" + DESCRIPTION: "Failed!" + when: on_failure +