--- - name: Include Docker installation ansible.builtin.include_tasks: docker.yml - name: Ensure runner data directory exists ansible.builtin.file: path: "{{ gitea_runner_data_dir }}" state: directory mode: "0755" - name: Create gitea_runner config file in data directory ansible.builtin.template: src: gitea-runner-config.yaml.j2 dest: "{{ gitea_runner_data_dir }}/config.yaml" mode: "0644" - name: Pull gitea_runner image ansible.builtin.command: docker pull {{ gitea_runner_docker_image }}:{{ gitea_runner_version | regex_replace('^v', '') }} changed_when: "'Downloaded newer image' in pull_result.stdout or 'Status: Downloaded' in pull_result.stdout" register: pull_result - name: Check if runner is already registered ansible.builtin.stat: path: "{{ gitea_runner_data_dir }}/.runner" register: runner_registered - name: Register runner with Gitea via Docker ansible.builtin.command: > docker run --rm --entrypoint /usr/local/bin/gitea-runner -v {{ gitea_runner_data_dir }}:/data -w /data {{ gitea_runner_docker_image }}:{{ gitea_runner_version | regex_replace('^v', '') }} register --token {{ registration_token }} --name {{ runner_name }} --instance {{ gitea_url }} --labels {{ runner_labels }} --no-interactive when: - not runner_registered.stat.exists - not skip_runner_registration register: register_output changed_when: "'already exists' not in register_output.stdout | default('')" timeout: 60 - name: Restart gitea-runner service after registration ansible.builtin.systemd: name: "gitea-runner-docker@{{ runner_name }}" state: restarted daemon_reload: true when: systemd_available.stat.exists | default(false) | bool - name: Include service setup ansible.builtin.include_tasks: service.yml