--- - name: Combine default and user settings, decrypt vault. ansible.builtin.set_fact: forgejo_runner_settings: "{{ forgejo_runner_default_settings | ansible.builtin.combine(forgejo_runner_settings, recursive=true) }}" no_log: true - name: Create forgejo-runner user. ansible.builtin.user: name: forgejo-runner groups: - docker password: '!' system: true state: present - name: Create forgejo-runner config directory. ansible.builtin.file: path: /etc/forgejo-runner owner: root group: forgejo-runner mode: "0770" state: directory - name: Create forgejo-runner data directory. ansible.builtin.file: path: /var/lib/forgejo-runner owner: forgejo-runner group: forgejo-runner mode: "0750" state: directory - name: Clean forgejo-runner binaries. when: forgejo_runner_settings.clean_binaries block: - name: Get all forgejo binaries. ansible.builtin.find: paths: /usr/local/bin/ patterns: forgejo-runner* register: forgejo_runner_binary_find - name: Delete forgejo-runner binary files. ansible.builtin.file: path: "{{ item.path }}" state: absent loop: "{{ forgejo_runner_binary_find.files }}" - name: Download forgejo-runner binary. ansible.builtin.get_url: url: "https://code.forgejo.org/forgejo/runner/releases/download\ /v{{ forgejo_runner_settings.version }}\ /forgejo-runner-{{ forgejo_runner_settings.version }}-linux-amd64" dest: "/usr/local/bin/forgejo-runner-{{ forgejo_runner_settings.version }}" owner: root group: root mode: "0555" - name: Create symlink to forgejo-runner binary. ansible.builtin.file: src: "/usr/local/bin/forgejo-runner-{{ forgejo_runner_settings.version }}" dest: /usr/local/bin/forgejo-runner owner: root group: root mode: "0555" state: link notify: - Restart forgejo-runner service. - name: Install forgejo service file. ansible.builtin.copy: src: forgejo-runner.service dest: /etc/systemd/system/forgejo-runner.service owner: root group: root mode: "0644" - name: Install forgejo-runner configuration file. ansible.builtin.template: src: config.yml.j2 dest: /etc/forgejo-runner/config.yml owner: root group: forgejo-runner mode: "0640" notify: - Restart forgejo-runner service. - name: Remove forgejo-runner registration file. ansible.builtin.file: path: "/var/lib/forgejo-runner\ /{{ forgejo_runner_settings.config.runner.file }}" state: absent when: forgejo_runner_settings.force_register notify: - Restart forgejo-runner service. - name: Register forgejo-runner. ansible.builtin.command: chdir: /var/lib/forgejo-runner/ cmd: "/usr/local/bin/forgejo-runner --config \ /etc/forgejo-runner/config.yml register --no-interactive \ --name {{ forgejo_runner_settings.name }} \ --instance {{ forgejo_runner_settings.instance }} \ --token {{ forgejo_runner_settings.token }}" creates: "{{ forgejo_runner_settings.config.runner.file }}" no_log: true - name: Change forgejo-runner registration file ownership. ansible.builtin.file: path: "/var/lib/forgejo-runner\ /{{ forgejo_runner_settings.config.runner.file }}" owner: forgejo-runner group: forgejo-runner mode: "0640" - name: Enable and start forgejo-runner service. ansible.builtin.service: name: forgejo-runner state: started enabled: true