Commit 730901bd authored by Andres Anaya Amariels's avatar Andres Anaya Amariels 🚀
Browse files

main_cancel_previous_action

parent 147a2116
Loading
Loading
Loading
Loading
+31 −0
Original line number Diff line number Diff line
@@ -34,6 +34,16 @@ variables:
  CI_REGISTRY: $CI_REGISTRY
  CAPIF_DOCKER_REGISTRY: $CAPIF_DOCKER_REGISTRY


.main_common: &main_common
  only:
    - merge_requests
  except:
    variables:
      - $CI_MERGE_REQUEST_TARGET_BRANCH_NAME != "OCF16-first-steps-on-ci-at-gitlab-repository"
  tags:
    - shell

.staging_common: &staging_common
  only:
    - merge_requests
@@ -47,6 +57,27 @@ variables:
  tags:
    - shell

main_cancel_previous_action:
  stage: staging_cancel_previous_action
  script:
   - |
     if [[ -n "$CI_JOB_TOKEN" ]]; then
       echo "Checking for running jobs in the same pipeline..."
       jobs=$(curl --header "PRIVATE-TOKEN: $CI_JOB_TOKEN" "$GITLAB_API/projects/$CI_PROJECT_ID/pipelines/$CI_PIPELINE_ID/jobs")
       for job in $(echo "$jobs" | jq -r '.[] | @base64'); do
         _jq() {
           echo ${job} | base64 --decode | jq -r ${1}
         }
         status=$(_jq '.status')
         id=$(_jq '.id')
         if [[ "$status" == "running" ]] && [[ "$id" != "$CI_JOB_ID" ]]; then
           echo "Cancelling job $id"
           curl --request POST --header "PRIVATE-TOKEN: $CI_JOB_TOKEN" "$GITLAB_API/projects/$CI_PROJECT_ID/jobs/$id/cancel"
         fi
       done
     fi
  <<: *main_common

staging_cancel_previous_action:
  stage: staging_cancel_previous_action
  script: