---
- name: Deploy {{ svc.name }}
  tags:
    - git
    - forgejo
    - ci
    - forgejo-runner
  block:
    - import_tasks: steps/create-service-directory.yml
    - import_tasks: steps/template-docker-compose.yml

    - name: Copy the config
      ansible.builtin.copy:
        src: config.yml
        dest: "{{ (service_path, 'config.yml') | path_join }}"
        mode: '0755'

    - name: Check if service.env already exists
      ansible.builtin.stat:
        path: "{{ (service_path, 'service.env') | path_join }}"
      register: svc_env_file

    - import_tasks: prompt-registration-token.yml
      when: not svc_env_file.stat.exists or
        force_forgejo_runner_registration | default(False)

    - import_tasks: steps/template-service-env.yml

    - import_tasks: steps/start-service.yml

    - name: Register runner
      ansible.builtin.command:
        cmd: docker compose run --rm -it app sh -c 'forgejo-runner register --no-interactive --token ${FORGEJO_RUNNER_REGISTRATION_TOKEN} --instance ${FORGEJO_INSTANCE_URL}'
        chdir: "{{ service_path }}"
      when: not svc_env_file.stat.exists or
        force_forgejo_runner_registration | default(False)