--- # file: roles/semaphore/tasks/main.yml - name: Create Semaphore directory ansible.builtin.file: path: "{{ semaphore_compose_dir }}" state: directory owner: wed group: docker mode: '0755' - name: Copy Compose file from boilerplate ansible.builtin.copy: src: "{{ playbook_dir }}/../../boilerplates/semaphore/compose.yaml" dest: "{{ semaphore_compose_dir }}/compose.yaml" owner: wed group: docker mode: '0644' - name: Deploy Semaphore .env file ansible.builtin.template: src: env.j2 dest: "{{ semaphore_compose_dir }}/.env" owner: wed group: docker mode: '0600' - name: Start Semaphore containers community.docker.docker_compose_v2: project_src: "{{ semaphore_compose_dir }}" state: present register: semaphore_compose - name: Wait for Semaphore to be ready ansible.builtin.uri: url: "http://localhost:3000/api/ping" method: GET status_code: 200 register: semaphore_health retries: 48 delay: 5 until: semaphore_health.status == 200