# code language=ansible --- - name: Install act_runner hosts: main vars: gitea__tasks: - all vars_prompt: - name: gitea__runner_token prompt: Input your runner token obtained on https://git.cantorgymnasium.de/org/gcg/settings/actions/runners private: false tasks: - name: Get latest act_runner version ansible.builtin.uri: url: https://gitea.com/api/v1/repos/gitea/act_runner/releases method: GET force: true return_content: true run_once: true register: json_response - name: Install act_runner {{ act_runner_version }} vars: act_runner_version: "{{ (json_response.content | from_json)[0].name | replace('v', '') }}" ansible.builtin.get_url: url: https://gitea.com/gitea/act_runner/releases/download/v{{ act_runner_version }}/act_runner-{{ act_runner_version }}-linux-amd64 dest: /usr/local/bin/act_runner mode: 0755 - name: Create runner user ansible.builtin.user: name: runner password: ! append: true groups: docker create_home: true home: /opt/runner - name: Set correct home directory permissions ansible.builtin.file: name: /opt/runner state: directory owner: runner group: runner recurse: true - name: Copy config file ansible.builtin.copy: src: runner-config.yml dest: /opt/runner/config.yml owner: runner group: runner - name: Register runner ansible.builtin.command: chdir: /opt/runner creates: /opt/runner/.runner argv: - /usr/local/bin/act_runner - register - --instance - "https://git.cantorgymnasium.de/" - --name - "{{ gitea__runner_name }}" - --labels - "{{ gitea__runner_labels }}" - --token - "{{ gitea__runner_token }}" - --no-interactive - -c - /opt/runner/config.yml - name: Set correct .runner file permissions ansible.builtin.file: name: /opt/runner/.runner state: file owner: runner group: runner - name: Copy systemd service file ansible.builtin.copy: src: act_runner.service dest: /etc/systemd/system/ owner: root group: root - name: Enable systemd service ansible.builtin.systemd_service: daemon_reload: true name: act_runner.service enabled: true state: started - name: Copy update script ansible.builtin.copy: src: "act_runner-updater.sh" dest: /opt/act_runner-updater.sh mode: 0755 owner: root group: root - name: Create working directory ansible.builtin.file: name: /opt/runner/workdir state: directory owner: runner group: runner recurse: true