forked from bitlair/ansible
Update git_ci role from polyfloyd's infra
This commit is contained in:
parent
6cff97e2bb
commit
b74a9859b2
8 changed files with 89 additions and 56 deletions
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
- hosts: git-ci
|
- hosts: git-ci
|
||||||
roles:
|
roles:
|
||||||
- { role: "git-ci", tags: ["git-ci"] }
|
- { role: "git_ci", tags: ["git_ci"] }
|
||||||
|
|
||||||
- hosts: git
|
- hosts: git
|
||||||
roles:
|
roles:
|
||||||
|
|
|
@ -3,4 +3,4 @@
|
||||||
- hosts: git-ci
|
- hosts: git-ci
|
||||||
roles:
|
roles:
|
||||||
- { role: "common", tags: [ "common" ] }
|
- { role: "common", tags: [ "common" ] }
|
||||||
- { role: "git-ci", tags: [ "git-ci" ] }
|
- { role: "git_ci", tags: [ "git_ci" ] }
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
runner_wd: /var/lib/forgejo-runner
|
|
||||||
runner_version: 6.3.0
|
|
|
@ -1,50 +0,0 @@
|
||||||
---
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
ansible.builtin.apt:
|
|
||||||
name: docker.io
|
|
||||||
|
|
||||||
- name: Download forgejo-runner
|
|
||||||
ansible.builtin.get_url:
|
|
||||||
url: "https://code.forgejo.org/forgejo/runner/releases/download/v{{ runner_version }}/forgejo-runner-{{ runner_version }}-linux-amd64"
|
|
||||||
dest: /usr/local/bin/forgejo-runner
|
|
||||||
mode: 0755
|
|
||||||
notify: restart forgejo-runner
|
|
||||||
|
|
||||||
- name: Create runner dir
|
|
||||||
ansible.builtin.file:
|
|
||||||
state: directory
|
|
||||||
path: "{{ runner_wd }}"
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: 0755
|
|
||||||
|
|
||||||
- name: Register runner
|
|
||||||
ansible.builtin.command: "forgejo-runner register --no-interactive --instance={{ forgejo_url }} --token={{ lookup('passwordstore', 'git/ci subkey=runner_token') }}"
|
|
||||||
args:
|
|
||||||
chdir: "{{ runner_wd }}"
|
|
||||||
creates: "{{ runner_wd }}/.runner"
|
|
||||||
|
|
||||||
- name: Install service file
|
|
||||||
ansible.builtin.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
|
|
||||||
ansible.builtin.systemd:
|
|
||||||
name: forgejo-runner
|
|
||||||
enabled: true
|
|
||||||
daemon_reload: true
|
|
||||||
|
|
||||||
- name: Start service
|
|
||||||
ansible.builtin.systemd:
|
|
||||||
name: forgejo-runner
|
|
||||||
state: started
|
|
||||||
daemon_reload: true
|
|
||||||
|
|
||||||
- name: Flush handlers
|
|
||||||
ansible.builtin.meta: flush_handlers
|
|
2
roles/git_ci/defaults/main.yaml
Normal file
2
roles/git_ci/defaults/main.yaml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
---
|
||||||
|
git_ci_runner_wd: /var/lib/forgejo-runner
|
|
@ -3,6 +3,6 @@
|
||||||
file: ../../common/handlers/main.yaml
|
file: ../../common/handlers/main.yaml
|
||||||
|
|
||||||
- name: restart forgejo-runner
|
- name: restart forgejo-runner
|
||||||
ansible.builtin.systemd:
|
systemd:
|
||||||
name: forgejo-runner
|
name: forgejo-runner
|
||||||
state: restarted
|
state: restarted
|
83
roles/git_ci/tasks/main.yaml
Normal file
83
roles/git_ci/tasks/main.yaml
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
---
|
||||||
|
- 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
|
|
@ -6,7 +6,7 @@ After=network.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
ExecStart=/usr/local/bin/forgejo-runner daemon
|
ExecStart=/usr/local/bin/forgejo-runner daemon
|
||||||
WorkingDirectory={{ runner_wd }}
|
WorkingDirectory={{ git_ci_runner_wd }}
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
RestartSec=10s
|
RestartSec=10s
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue