Outils pour utilisateurs

Outils du site


tech:notes_gitlab-ci_pipeline_-_api

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
tech:notes_gitlab-ci_pipeline_-_api [2026/07/10 15:55] Jean-Baptistetech:notes_gitlab-ci_pipeline_-_api [2026/07/16 13:25] (Version actuelle) Jean-Baptiste
Ligne 1: Ligne 1:
 <!DOCTYPE markdown> <!DOCTYPE markdown>
-{{tag>Brouillon Gitlab CI API}}+{{tag>Brouillon Gitlab CI API Ansible}}
  
 # Notes Gitlab-ci pipeline - API # Notes Gitlab-ci pipeline - API
Ligne 60: Ligne 60:
      "${CI_API_V4_URL}/projects/100/trigger/pipeline"        "${CI_API_V4_URL}/projects/100/trigger/pipeline"  
 ~~~ ~~~
 +
 +Avec Ansible
 +
 +`.gitlab-ci.yml`
 +~~~yaml
 +launch:
 +  tags:
 +    # - gitlab-runner-sh-001
 +    - gitlab-runner-docker-001
 +  image: registry.acme.local/repository/local-docker/ansible-builder:0.0.4
 +  stage: build
 +  script: ansible-playbook play-launch-ci.yml -e url="${CI_API_V4_URL}" -e token="${TRIGGER_TOKEN}"
 +~~~
 +
 +`play-launch-ci.yml`
 +~~~yaml
 +#! /usr/bin/env ansible-playbook
 +
 +---
 +
 +- name: Launch CI
 +  gather_facts: false
 +  hosts: localhost
 +
 +  vars:
 +    branch: "{{ lookup('env', 'BRANCH') }}"
 +    line: "{{ lookup('env', 'LINE') }}"
 +    kind: "{{ lookup('env', 'KIND') }}"
 +
 +  tasks:
 +    - name: Assert check environment vars are correctly defined
 +      ansible.builtin.assert:
 +        that:
 +          - url is defined and url != ''
 +          - token is defined and token != ''
 +          - branch is defined and branch != ''
 +          - line is defined and line != ''
 +          - kind is defined and kind != ''
 +        msg: "Env var must be defined"
 +
 +    - name: Call API
 +      # no_log: true
 +      register: reg_uri
 +      until: reg_uri.status == 201
 +      retries: 3
 +      delay: 5    # Every 5 seconds
 +      ansible.builtin.uri:
 +        url: "{{ url }}/projects/100/trigger/pipeline"
 +        # validate_certs: false
 +        status_code: 201
 +        follow_redirects: none
 +        method: POST
 +        body_format: json
 +        headers:
 +          Content-Type: "application/json"
 +        body: |
 +          {
 +            "ref": "main",
 +            "token": "{{ token }}",
 +            "variables": {
 +              "BRANCH": "{{ branch }}",
 +              "KIND": "{{ kind }}",
 +              "LINE": "{{ line }}"
 +            }
 +          }
 +~~~
 +
    
 Voir https://docs.gitlab.com/ci/triggers/ Voir https://docs.gitlab.com/ci/triggers/
tech/notes_gitlab-ci_pipeline_-_api.1783691716.txt.gz · Dernière modification : de Jean-Baptiste

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki