MadHer
MadHer

Reputation: 91

Right syntax for a while loop in a GitLab CI file

I want to write a while loop in a GitLab CI file and here is the syntax that I've tried but seems to not be working.

Is the while loop authorized in GitLab or YAML files? Or are there other ways to write it?

Here is where I used it:

  - while ($(curl -X GET ${URL} | jq -r '.task.status') != "SUCCESS")
   ANALYSIS_ID=$(curl -X GET ${URL} | jq -r '.task.analysisId')

Upvotes: 1

Views: 5492

Answers (2)

MadHer
MadHer

Reputation: 91

So I did this to resolve my issue , its to create a script in which I ve wrote the loop while and this script return the value that I needed, and then I called this script in my gitlab_ci file as below :

  - ANALYSIS_ID=$(**./checkUrl.sh** $URL)

And if needed as an example the script that I used

  #!/bin/bash
    success="SUCCESS"
    condition="$(curl -X GET "$1" | jq -r '.task.status')"

    while [ "$condition" != "$success" ]
    do
    ANALYSIS_Id="$(curl -X GET "$1" | jq -r '.task.analysisId')"
    done
    return "$ANALYSIS_Id"

Upvotes: 0

Václav
Václav

Reputation: 1000

Why don't you write yourself a shell/python/whatever script and just run it from the CI?

YAML is not the suitable language to perform such a things (e.g. while loops, large conditions, for loops) and should not be used that way...

Upvotes: 2

Related Questions