76 lines
2.1 KiB
YAML
Executable File
76 lines
2.1 KiB
YAML
Executable File
#!/usr/bin/env ansible-playbook
|
|
---
|
|
- name: configure GitLab repository
|
|
hosts: localhost
|
|
become: no
|
|
gather_facts: no
|
|
|
|
vars:
|
|
namespace: robertdebock
|
|
|
|
vars_files:
|
|
- vars/main.yml
|
|
- vars/vault.yml
|
|
|
|
tasks:
|
|
- name: see if all veriables are set
|
|
assert:
|
|
that:
|
|
- namespace is defined
|
|
- role is defined
|
|
quiet: yes
|
|
|
|
- name: urlencode path
|
|
set_fact:
|
|
encoded_path: "{{ namespace + '%2F' + role }}"
|
|
|
|
- name: place variable
|
|
block:
|
|
- name: see if the variable is set already
|
|
uri:
|
|
url: "https://gitlab.com/api/v4/projects/{{ encoded_path }}/variables"
|
|
method: GET
|
|
body_format: json
|
|
headers:
|
|
PRIVATE-TOKEN: "{{ gitlab_private_token }}"
|
|
body:
|
|
key: "GALAXY_API_KEY"
|
|
register: check_variable
|
|
failed_when:
|
|
check_variable.json | length <= 0
|
|
rescue:
|
|
- name: place variable
|
|
uri:
|
|
url: "https://gitlab.com/api/v4/projects/{{ encoded_path }}/variables"
|
|
method: POST
|
|
body_format: json
|
|
status_code:
|
|
- 201
|
|
headers:
|
|
PRIVATE-TOKEN: "{{ gitlab_private_token }}"
|
|
body:
|
|
key: "GALAXY_API_KEY"
|
|
value: "{{ galaxy_api_key }}"
|
|
variable_type: env_var
|
|
protects: true
|
|
masked: true
|
|
|
|
- name: show details
|
|
debug:
|
|
msg: "Scheduling {{ role }} on {{ letter_minute_mapping[role[13]] }} {{ letter_hour_mapping[role[13]] }} {{ letter_day_mapping[role[13]] }} * *"
|
|
|
|
- name: create a new pipeline schedule
|
|
uri:
|
|
url: "https://gitlab.com/api/v4/projects/{{ encoded_path }}/pipeline_schedules"
|
|
method: POST
|
|
body_format: json
|
|
status_code:
|
|
- 201
|
|
headers:
|
|
PRIVATE-TOKEN: "{{ gitlab_private_token }}"
|
|
body:
|
|
description: "Monthly test"
|
|
ref: master
|
|
cron: '{{ letter_minute_mapping[role[13]] }} {{ letter_hour_mapping[role[13]] }} {{ letter_day_mapping[role[13]] }} * *'
|
|
cron_timezone: Amsterdam
|