Notes Gitlab-ci pipeline - API

Exemple 1 - avec Access Token ou Personnal Access tokens

Avec Access Token (associé au projet)

Aller dans le projet - puis : Settings / Access tokens

Attention : par défaut les Access Tokens ont une date d'expiration

Avec Personnal Access tokens (associé au compte utilisateur)

Profile / Edit profile / Access Token / Personal Access Tokens

Attention : par défaut les Personal Access Tokens ont une date d'expiration

Launch pipeline with API call - with Private / Personal access tokens

curl --request POST \ --header "PRIVATE-TOKEN: saltxx-8888888888" \ --header "Content-Type: application/json" \ --data '{ "ref": "testjb", "variables": [ {"key": "VAR1", "value": "plop"}, {"key": "VAR2", "value": "plop"}, {"key": "VAR3", "value": "plop"}, {"key": "VAR4", "value": ""} ] }' \ --url "http://gitlab.acme.local/api/v4/projects/100/pipeline"

Voir https://docs.gitlab.com/api/rest/

Exemple 2 - Avec Trigger Tokens

Voir :

https://medium.com/@alla.shamis/automating-gitlab-ci-cd-using-api-triggers-and-passing-variables-like-a-pro-e864310765d8

Voir aussi :

https://docs.gitlab.com/ci/pipelines/downstream_pipelines/#multi-project-pipelines

https://blog.stephane-robert.info/docs/pipeline-cicd/gitlab/industrialisation/multi-projet/

Aller dans le projet, puis Settings/ CI/CD / Pipeline trigger tokens

Trigger pipeline with the API / Pass CI/CD variables in the API call

curl --request POST \ --form token=glptt-99999999999999 \ --form ref=testjb \ --form "variables[VAR1]=plop" \ --form "variables[VAR2]=plop" \ --form "variables[VAR3]=plop" \ --form "variables[VAR4]=plop" \ "http://gitlab.acme.local/api/v4/projects/100/trigger/pipeline"

Voir https://docs.gitlab.com/ci/triggers/

Autres

000-colo-switch:prod: stage: deploy variables: PROJECT: "projectname" rules: # whether to include the job in the pipeline - if: '$CI_PIPELINE_SOURCE == "trigger"' when: always - when: never

Source: https://forum.gitlab.com/t/triggering-a-specific-job-of-the-pipeline-via-api/42397/2