blob: bbea9743b5dc19dc2583c30b95978494c9501f98 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
---
- name: check 'step' is set
fail:
msg: 'Step must be defined ! (use --extra-vars "step=test1")'
when: step is not defined
- name: get default step parameters
set_fact:
config: >-
{{ gitlab.git_projects[
hostvars[inventory_hostname].scenario_steps[step].project] |
combine(hostvars[inventory_hostname].scenario_steps[step]) }}
- name: merge step parameters
set_fact:
config: >-
{{ config| combine(
{'parameters': config.parameters|
combine(config.extra_parameters)}) }}
when: config.extra_parameters is defined
##
# Prepare base of variables to send
##
- name: prepare variables to sent
set_fact:
params:
{
'token': "{{ config.trigger_token}}",
'ref': "{{ config.branch }}",
'variables[source_job_name]': "{{ step }}",
'variables[triggered_from]': "{{ lookup('env','CI_JOB_NAME') }}",
'variables[INPOD]': "{{ inventory_hostname }}",
'variables[jumphost]': "{{ jumphost }}",
}
- name: Add step parameters
set_fact:
params: "{{ params|combine({key: value}) }}"
vars:
key: "variables[{{ item.key }}]"
value: "{{ item.value }}"
with_dict: "{{ config.parameters }}"
when: config.parameters is defined
##
# Trigger the pipeline
##
- name: "Trigger a new pipeline for step {{ step }}"
uri:
url: >-
{{ gitlab.api_url}}/projects/{{ lookup( 'env', 'CI_PROJECT_ID')
}}/trigger/pipeline
method: POST
status_code: 201
body_format: raw
body: "{{params| urlencode}}"
headers:
Content-Type: "application/x-www-form-urlencoded"
register: trigger_out
- name: Echo running pipeline link
debug:
msg: "{{ msg.split('\n') }}"
vars:
url: >-
{{ lookup('env','CI_PROJECT_URL') }}/pipelines/{{
trigger_out.json.id }}"
msg: |
******************************************************************
* Pipeline triggered for step '{{ step }}'
* {{ url }}
******************************************************************
|