Skip to content

Instantly share code, notes, and snippets.

@badnetmask
Last active February 3, 2025 13:03
Show Gist options
  • Select an option

  • Save badnetmask/92eed7fbc1f0f1eb3b6e53217f9dcb1d to your computer and use it in GitHub Desktop.

Select an option

Save badnetmask/92eed7fbc1f0f1eb3b6e53217f9dcb1d to your computer and use it in GitHub Desktop.
- name: Get list of Forgejo runner releases
ansible.builtin.uri:
url: https://data.forgejo.org/api/v1/repos/forgejo/runner/releases/latest
return_content: true
register: runner_releases
- name: Install Forgejo runner
when: runner_releases.json.tag_name is defined
block:
- name: Download the latest Forgejo runner release
ansible.builtin.get_url:
url:
"https://code.forgejo.org/forgejo/runner/releases/download/{{ runner_releases.json.tag_name }}/\
forgejo-runner-{{ runner_releases.json.tag_name[1:] }}-linux-amd64"
dest: /usr/local/bin/forgejo-runner
mode: '0755'
owner: root
group: root
- name: Create the Forgejo runner user
ansible.builtin.user:
name: runner
uid: 1000
shell: /bin/false
groups: docker
append: true
- name: Install the Forgejo runner systemd service
ansible.builtin.copy:
src: files/forgejo-runner.service
dest: /etc/systemd/system/forgejo-runner.service
owner: root
group: root
mode: '0644'
notify: Reload systemd
- name: Land the Forgejo runner configuration file
ansible.builtin.copy:
src: files/forgejo-runner-config.yaml
dest: /home/runner/config.yaml
owner: root
group: root
mode: '0644'
notify: Restart forgejo-runner
- name: Register the runner and start the service
when: forgejo_runner_token is defined
block:
- name: Register the runner (when forgejo_runner_token is defined)
ansible.builtin.command: >
/usr/local/bin/forgejo-runner register
--token {{ forgejo_runner_token }}
--instance {{ forgejo_instance }}
--name {{ forgejo_runner_name | default(inventory_hostname_short) }}
--labels {{ forgejo_labels }}
--no-interactive
become: true
become_user: runner
register: runner_registration
args:
chdir: /home/runner
creates: /home/runner/.runner
- name: Start the Forgejo runner service (only when registration happens)
ansible.builtin.systemd:
name: forgejo-runner
state: started
enabled: true
notify: Reload systemd
when: runner_registration.stderr.find('Runner registered successfully.') != -1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment