--- - name: Check if config already exists stat: path: "{{ forgejo_runner_config_path }}" register: config_stat - name: Generate default config shell: "{{ forgejo_runner_bin_path }} generate-config > {{ forgejo_runner_config_path }}" args: chdir: "{{ forgejo_runner_dir }}" when: not config_stat.stat.exists - name: Set config file ownership file: path: "{{ forgejo_runner_config_path }}" owner: "{{ forgejo_runner_user }}" group: "{{ forgejo_runner_user }}" when: not config_stat.stat.exists # ── 6. Register runner ───────────────────────────────────────────── - name: Check if runner is already registered stat: path: "{{ forgejo_runner_dir }}/.runner" register: runner_stat - name: Register runner with Forgejo instance command: > {{ forgejo_runner_bin_path }} register --no-interactive --instance {{ forgejo_instance_url }} --token {{ forgejo_runner_registration_token }} --name forgejo-runner-box --labels "{{ forgejo_runner_labels }}" args: chdir: "{{ forgejo_runner_dir }}" when: not runner_stat.stat.exists - name: Set runner registration file ownership file: path: "{{ forgejo_runner_dir }}/.runner" owner: "{{ forgejo_runner_user }}" group: "{{ forgejo_runner_user }}" when: not runner_stat.stat.exists