|
1 | 1 | --- |
2 | 2 | - name: Create directory |
3 | | - file: |
| 3 | + ansible.builtin.file: |
4 | 4 | path: "{{ runner_dir }}" |
5 | 5 | state: directory |
6 | 6 | mode: 0755 |
7 | 7 | owner: "{{ runner_user }}" |
8 | 8 |
|
9 | 9 | - name: Find the latest runner version (RUN ONCE) |
10 | | - uri: |
| 10 | + ansible.builtin.uri: |
11 | 11 | url: "https://api.github.com/repos/{{ runner_download_repository }}/releases/latest" |
12 | 12 | headers: |
13 | 13 | Content-Type: "application/json" |
|
23 | 23 | when: runner_version == "latest" |
24 | 24 |
|
25 | 25 | - name: Set runner_version variable (If latest) |
26 | | - set_fact: |
| 26 | + ansible.builtin.set_fact: |
27 | 27 | runner_version: "{{ api_response.json.tag_name | regex_replace('^v', '') }}" |
28 | 28 | when: runner_version == "latest" |
29 | 29 |
|
30 | 30 | - name: Check if desired version already installed |
31 | | - command: "grep -i {{ runner_version }} {{ runner_dir }}/bin/Runner.Listener.deps.json" |
| 31 | + ansible.builtin.command: "grep -i {{ runner_version }} {{ runner_dir }}/bin/Runner.Listener.deps.json" |
32 | 32 | register: runner_installed |
33 | 33 | check_mode: false |
34 | 34 | changed_when: False |
35 | 35 | ignore_errors: yes |
36 | 36 |
|
37 | 37 | - name: Create temporary directory for archive |
38 | | - file: |
39 | | - path: "{{ runner_pkg_tempdir }}" |
| 38 | + ansible.builtin.tempfile: |
40 | 39 | state: directory |
41 | | - recurse: yes |
42 | | - mode: 0777 |
43 | | - run_once: yes |
44 | | - delegate_to: localhost |
| 40 | + suffix: runner |
45 | 41 | become: false |
| 42 | + register: temp_dir |
46 | 43 | when: runner_version not in runner_installed.stdout |
47 | 44 |
|
48 | 45 | - name: Download runner package version - "{{ runner_version }}" (RUN ONCE) |
49 | | - get_url: |
| 46 | + ansible.builtin.get_url: |
50 | 47 | url: |
51 | 48 | "https://github.com/{{ runner_download_repository }}/releases/download/v{{ runner_version }}/\ |
52 | 49 | actions-runner-linux-{{ github_actions_architecture }}-{{ runner_version }}.tar.gz" |
53 | | - dest: "{{ runner_pkg_tempdir }}/actions-runner-linux-{{ runner_version }}.tar.gz" |
| 50 | + dest: "{{ temp_dir.path }}/actions-runner-linux-{{ runner_version }}.tar.gz" |
54 | 51 | force: no |
55 | | - run_once: yes |
56 | 52 | become: false |
57 | | - delegate_to: localhost |
58 | 53 | when: runner_version not in runner_installed.stdout or reinstall_runner |
59 | 54 |
|
60 | 55 | - name: Unarchive package |
61 | | - unarchive: |
62 | | - src: "{{ runner_pkg_tempdir }}/actions-runner-linux-{{ runner_version }}.tar.gz" |
| 56 | + ansible.builtin.unarchive: |
| 57 | + src: "{{ temp_dir.path }}/actions-runner-linux-{{ runner_version }}.tar.gz" |
63 | 58 | dest: "{{ runner_dir }}/" |
64 | 59 | owner: "{{ runner_user }}" |
| 60 | + remote_src: yes |
65 | 61 | mode: 0755 |
66 | 62 | when: runner_version not in runner_installed.stdout or reinstall_runner |
67 | 63 |
|
68 | 64 | - name: Configure custom env file if required |
69 | | - blockinfile: |
| 65 | + ansible.builtin.blockinfile: |
70 | 66 | path: "{{ runner_dir }}/.env" |
71 | 67 | block: "{{ custom_env }}" |
72 | 68 | owner: "{{ runner_user }}" |
|
77 | 73 | when: custom_env is defined |
78 | 74 |
|
79 | 75 | - name: Check if runner service name file exist |
80 | | - stat: |
| 76 | + ansible.builtin.stat: |
81 | 77 | path: "{{ runner_dir }}/.service" |
82 | 78 | register: runner_service_file_path |
83 | 79 |
|
84 | 80 | - name: Set complete GitHub url for repo runner |
85 | | - set_fact: |
| 81 | + ansible.builtin.set_fact: |
86 | 82 | github_full_url: "{{ github_url }}/{{ github_owner | default(github_account) }}/{{ github_repo }}" |
87 | 83 | when: not runner_org |
88 | 84 |
|
89 | 85 | - name: Set complete GitHub url for org runner |
90 | | - set_fact: |
| 86 | + ansible.builtin.set_fact: |
91 | 87 | github_full_url: "{{ github_url }}/{{ github_owner | default(github_account) }}" |
92 | 88 | when: runner_org | bool |
93 | 89 |
|
94 | 90 | - name: Register runner |
95 | | - command: |
| 91 | + ansible.builtin.command: |
96 | 92 | "{{ runner_dir }}/./config.sh \ |
97 | 93 | --url {{ github_full_url }} \ |
98 | 94 | --token {{ registration.json.token }} \ |
|
109 | 105 | when: runner_name not in registered_runners.json.runners|map(attribute='name')|list |
110 | 106 |
|
111 | 107 | - name: Replace registered runner |
112 | | - command: |
| 108 | + ansible.builtin.command: |
113 | 109 | "{{ runner_dir }}/config.sh \ |
114 | 110 | --url {{ github_full_url }} \ |
115 | 111 | --token {{ registration.json.token }} \ |
|
126 | 122 | when: runner_name in registered_runners.json.runners|map(attribute='name')|list and reinstall_runner and not runner_org |
127 | 123 |
|
128 | 124 | - name: Install service |
129 | | - command: "./svc.sh install {{ runner_user }}" |
| 125 | + ansible.builtin.command: "./svc.sh install {{ runner_user }}" |
130 | 126 | args: |
131 | 127 | chdir: "{{ runner_dir }}" |
132 | 128 | when: not runner_service_file_path.stat.exists |
133 | 129 |
|
134 | 130 | - name: Read service name from file |
135 | | - slurp: |
| 131 | + ansible.builtin.slurp: |
136 | 132 | src: "{{ runner_dir }}/.service" |
137 | 133 | register: runner_service |
138 | 134 |
|
139 | 135 | - name: START and enable Github Actions Runner service |
140 | | - systemd: |
| 136 | + ansible.builtin.systemd: |
141 | 137 | name: "{{ runner_service.content | b64decode | replace('\n', '') }}" |
142 | 138 | state: started |
143 | 139 | enabled: yes |
144 | 140 | ignore_errors: "{{ ansible_check_mode }}" |
145 | 141 | when: runner_state|lower == "started" |
146 | 142 |
|
147 | 143 | - name: STOP and disable Github Actions Runner service |
148 | | - systemd: |
| 144 | + ansible.builtin.systemd: |
149 | 145 | name: "{{ runner_service.content | b64decode | replace('\n', '') }}" |
150 | 146 | state: stopped |
151 | 147 | enabled: no |
152 | 148 | ignore_errors: "{{ ansible_check_mode }}" |
153 | 149 | when: runner_state|lower == "stopped" |
154 | 150 |
|
155 | 151 | - name: Version changed - RESTART Github Actions Runner service |
156 | | - systemd: |
| 152 | + ansible.builtin.systemd: |
157 | 153 | name: "{{ runner_service.content | b64decode | replace('\n', '') }}" |
158 | 154 | state: restarted |
159 | 155 | ignore_errors: "{{ ansible_check_mode }}" |
|
0 commit comments