forked from bitlair/ansible
83 lines
2.5 KiB
YAML
83 lines
2.5 KiB
YAML
---
|
|
- tags: git_ci
|
|
block:
|
|
- name: Install dependencies
|
|
apt:
|
|
name: docker.io
|
|
|
|
- name: Query latest forgejo-runner version
|
|
uri:
|
|
url: https://code.forgejo.org/api/v1/repos/forgejo/runner/tags
|
|
return_content: true
|
|
register: response
|
|
changed_when: false
|
|
check_mode: false
|
|
failed_when: "response is failed or 'json' not in response"
|
|
|
|
- name: Format forgejo-runner latest version
|
|
set_fact:
|
|
forgejo_runner_version: "{{ response['json'][0]['name'] | trim('v') }}"
|
|
|
|
- name: Detect installed forgejo-runner version
|
|
shell:
|
|
cmd: |
|
|
set -o pipefail
|
|
forgejo-runner --version | grep --color=never -Po '\d\.\d+(\.\d+)?' || echo none
|
|
executable: /bin/bash
|
|
register: forgejo_runner_installed_version_shell
|
|
changed_when: false
|
|
check_mode: false
|
|
|
|
- name: Format installed forgejo-runner version
|
|
set_fact:
|
|
forgejo_runner_installed_version: "{{ forgejo_runner_installed_version_shell.stdout }}"
|
|
|
|
- debug:
|
|
msg:
|
|
- "Forgejo Runner latest version: {{ forgejo_runner_version }}"
|
|
- "Forgejo Runner installed version: {{ forgejo_runner_installed_version }}"
|
|
|
|
- name: Download forgejo-runner
|
|
get_url:
|
|
url: "https://code.forgejo.org/forgejo/runner/releases/download/v{{ forgejo_runner_version }}/forgejo-runner-{{ forgejo_runner_version }}-linux-amd64"
|
|
dest: /usr/local/bin/forgejo-runner
|
|
mode: "0755"
|
|
notify: restart forgejo-runner
|
|
when: forgejo_runner_installed_version != forgejo_runner_version
|
|
|
|
- name: Create runner dir
|
|
file:
|
|
state: directory
|
|
path: "{{ git_ci_runner_wd }}"
|
|
owner: root
|
|
group: root
|
|
mode: "0755"
|
|
|
|
- name: Register runner
|
|
command: "forgejo-runner register --no-interactive --instance={{ forgejo_url }} --token={{ lookup('passwordstore', 'git/ci subkey=runner_token') }}"
|
|
args:
|
|
chdir: "{{ git_ci_runner_wd }}"
|
|
creates: "{{ git_ci_runner_wd }}/.runner"
|
|
|
|
- name: Install service file
|
|
template:
|
|
src: forgejo-runner.service
|
|
dest: /etc/systemd/system/forgejo-runner.service
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
notify: restart forgejo-runner
|
|
|
|
- name: Enable service
|
|
systemd:
|
|
name: forgejo-runner
|
|
enabled: true
|
|
daemon_reload: true
|
|
|
|
- name: Start service
|
|
systemd:
|
|
name: forgejo-runner
|
|
state: started
|
|
daemon_reload: true
|
|
|
|
- meta: flush_handlers
|