ublue-forge/setup/ansible/roles/semaphore/tasks/environments.yml
2023-05-01 16:17:56 +00:00

46 lines
1.5 KiB
YAML

---
- name: Check for existing environments
changed_when: false
check_mode: false
ansible.builtin.uri:
url: "http://{{ ansible_host }}:3000/api/project/{{ semaphore_project_id }}/environment"
method: GET
headers:
Cookie: "{{ semaphore_login.cookies_string }}"
status_code: 200
timeout: 5
register: semaphore_environments
- name: Create default environment
changed_when: "semaphore_environment_created.status == 204"
ansible.builtin.uri:
url: "http://{{ ansible_host }}:3000/api/project/{{ semaphore_project_id }}/environment"
method: POST
headers:
Cookie: "{{ semaphore_login.cookies_string }}"
# Body in YAML format is not working
body: "{{ lookup('ansible.builtin.template', 'environment.yml.j2') | from_yaml | to_json }}"
body_format: json
status_code: 204
timeout: 5
register: semaphore_environment_created
when: semaphore_environments.json | selectattr('name', 'equalto', 'default') | length == 0
- name: Check for environments (after creation)
changed_when: false
check_mode: false
ansible.builtin.uri:
url: "http://{{ ansible_host }}:3000/api/project/{{ semaphore_project_id }}/environment"
method: GET
headers:
Cookie: "{{ semaphore_login.cookies_string }}"
status_code: 200
timeout: 5
register: semaphore_environments
- name: Parse semaphore_environment_id
ansible.builtin.set_fact:
semaphore_environment_id: "{{ semaphore_environments.json \
| selectattr('name', 'equalto', 'default') \
| map(attribute='id') | first }}"