56 lines
1.8 KiB
YAML
56 lines
1.8 KiB
YAML
---
|
|
- 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
|