Last active
February 3, 2025 13:03
-
-
Save badnetmask/92eed7fbc1f0f1eb3b6e53217f9dcb1d to your computer and use it in GitHub Desktop.
Supporting material for my blog post: https://mteixeira.wordpress.com/2025/02/02/my-self-hosted-forgejo-runner-setup/
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| - 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