Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

GitLab CI variables in job api?

I am using rest API to run manual jobs in GitLab CI. When i start a manual job from UI I am able to define custom variables that i can use during the job. How can i define them when running job through API?

Could not find any documentation on it. Or not even a single question in forums.

This is how i currently run my job

curl -k --request POST --header "PRIVATE-TOKEN: abc" https://mygit.com/api/v4/projects/17/jobs/1956/play

I tried adding:

--form variables[TEST]=hello

But this didnt work.

Edit: A bit more information on what im doing. So my pipeline has two stages. Build and deploy. On each commit I want build to run once and then i want to be able to deploy this result to multiple different servers. Because the server list is dynamic and there are a lot of them I want to have the IP address of the server as an variable I can give to my deploy job.

like image 612
user1985273 Avatar asked Mar 05 '20 13:03

user1985273


People also ask

Where are GitLab CI variables?

In GitLab, CI/CD variables can be defined by going to Settings » CI/CD » Variables, or by simply defining them in the . gitlab-ci. yml file. Variables are useful for configuring third-party services for different environments, such as testing , staging , production , etc.

How do I inherit a group variable in GitLab?

If you have GitLab 9.4+, you can set up group-level environment variables like this: Navigate to your Group. Go to Settings > CI/CD > Variables . Group variables will be inherited by the group's projects and sub-groups.


1 Answers

Instead of starting a job you can start a pipeline and set the variables from there. Here's an example of how to do this from the GitLab documentation:

curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
--header "Content-Type: application/json" \
--data '{ "ref": "master", "variables": [ {"key": "VAR1", "value": "hello"}, {"key": "VAR2", "value": "world"} ] }' \
"https://gitlab.example.com/api/v4/projects/169/pipeline"
like image 98
CNugteren Avatar answered Sep 29 '22 17:09

CNugteren