scripts/ci: update gitlab-runner playbook to use latest runner
We were using quite and old runner on our machines and running into issues with stalling jobs. Gitlab in the meantime now reliably provide the latest packaged versions of the runner under a stable URL. This update: - creates a per-arch subdir for builds - switches from binary tarballs to deb packages - re-uses the same binary for the secondary runner - updates distro check for second to 22.04 Note this script isn't fully idempotent as we end up accumulating runners especially during testing. However we also want to be able to run twice with different GitLab keys (e.g. project and personal) so I think we just have to be mindful of that during testing. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Acked-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20230124180127.1881110-2-alex.bennee@linaro.org>
This commit is contained in:
parent
026817fb69
commit
69c4befba1
@ -50,17 +50,25 @@
|
||||
|
||||
- name: Download the matching gitlab-runner
|
||||
get_url:
|
||||
dest: /usr/local/bin/gitlab-runner
|
||||
url: "https://s3.amazonaws.com/gitlab-runner-downloads/v{{ gitlab_runner_version }}/binaries/gitlab-runner-{{ gitlab_runner_os }}-{{ gitlab_runner_arch }}"
|
||||
owner: gitlab-runner
|
||||
group: gitlab-runner
|
||||
mode: u=rwx,g=rwx,o=rx
|
||||
dest: "/root/"
|
||||
url: "https://gitlab-runner-downloads.s3.amazonaws.com/latest/deb/gitlab-runner_{{ gitlab_runner_arch }}.deb"
|
||||
|
||||
- name: Install gitlab-runner via package manager
|
||||
apt: deb="/root/gitlab-runner_{{ gitlab_runner_arch }}.deb"
|
||||
|
||||
- name: Register the gitlab-runner
|
||||
command: "/usr/local/bin/gitlab-runner register --non-interactive --url {{ gitlab_runner_server_url }} --registration-token {{ gitlab_runner_registration_token }} --executor shell --tag-list {{ ansible_facts[\"architecture\"] }},{{ ansible_facts[\"distribution\"]|lower }}_{{ ansible_facts[\"distribution_version\"] }} --description '{{ ansible_facts[\"distribution\"] }} {{ ansible_facts[\"distribution_version\"] }} {{ ansible_facts[\"architecture\"] }} ({{ ansible_facts[\"os_family\"] }})'"
|
||||
command: "/usr/bin/gitlab-runner register --non-interactive --url {{ gitlab_runner_server_url }} --registration-token {{ gitlab_runner_registration_token }} --executor shell --tag-list {{ ansible_facts[\"architecture\"] }},{{ ansible_facts[\"distribution\"]|lower }}_{{ ansible_facts[\"distribution_version\"] }} --description '{{ ansible_facts[\"distribution\"] }} {{ ansible_facts[\"distribution_version\"] }} {{ ansible_facts[\"architecture\"] }} ({{ ansible_facts[\"os_family\"] }})'"
|
||||
|
||||
# The secondary runner will still run under the single gitlab-runner service
|
||||
- name: Register secondary gitlab-runner
|
||||
command: "/usr/bin/gitlab-runner register --non-interactive --url {{ gitlab_runner_server_url }} --registration-token {{ gitlab_runner_registration_token }} --executor shell --tag-list aarch32,{{ ansible_facts[\"distribution\"]|lower }}_{{ ansible_facts[\"distribution_version\"] }} --description '{{ ansible_facts[\"distribution\"] }} {{ ansible_facts[\"distribution_version\"] }} {{ ansible_facts[\"architecture\"] }} ({{ ansible_facts[\"os_family\"] }})'"
|
||||
when:
|
||||
- ansible_facts['distribution'] == 'Ubuntu'
|
||||
- ansible_facts['architecture'] == 'aarch64'
|
||||
- ansible_facts['distribution_version'] == '22.04'
|
||||
|
||||
- name: Install the gitlab-runner service using its own functionality
|
||||
command: /usr/local/bin/gitlab-runner install --user gitlab-runner --working-directory /home/gitlab-runner
|
||||
command: "/usr/bin/gitlab-runner install --user gitlab-runner --working-directory /home/gitlab-runner"
|
||||
register: gitlab_runner_install_service_result
|
||||
failed_when: "gitlab_runner_install_service_result.rc != 0 and \"already exists\" not in gitlab_runner_install_service_result.stderr"
|
||||
|
||||
@ -69,41 +77,3 @@
|
||||
name: gitlab-runner
|
||||
state: started
|
||||
enabled: yes
|
||||
|
||||
- name: Download secondary gitlab-runner
|
||||
get_url:
|
||||
dest: /usr/local/bin/gitlab-runner-arm
|
||||
url: "https://s3.amazonaws.com/gitlab-runner-downloads/v{{ gitlab_runner_version }}/binaries/gitlab-runner-{{ gitlab_runner_os }}-arm"
|
||||
owner: gitlab-runner
|
||||
group: gitlab-runner
|
||||
mode: u=rwx,g=rwx,o=rx
|
||||
when:
|
||||
- ansible_facts['distribution'] == 'Ubuntu'
|
||||
- ansible_facts['architecture'] == 'aarch64'
|
||||
- ansible_facts['distribution_version'] == '20.04'
|
||||
|
||||
- name: Register secondary gitlab-runner
|
||||
command: "/usr/local/bin/gitlab-runner-arm register --non-interactive --url {{ gitlab_runner_server_url }} --registration-token {{ gitlab_runner_registration_token }} --executor shell --tag-list aarch32,{{ ansible_facts[\"distribution\"]|lower }}_{{ ansible_facts[\"distribution_version\"] }} --description '{{ ansible_facts[\"distribution\"] }} {{ ansible_facts[\"distribution_version\"] }} {{ ansible_facts[\"architecture\"] }} ({{ ansible_facts[\"os_family\"] }})'"
|
||||
when:
|
||||
- ansible_facts['distribution'] == 'Ubuntu'
|
||||
- ansible_facts['architecture'] == 'aarch64'
|
||||
- ansible_facts['distribution_version'] == '20.04'
|
||||
|
||||
- name: Install the secondary gitlab-runner service using its own functionality
|
||||
command: /usr/local/bin/gitlab-runner-arm install --user gitlab-runner --working-directory /home/gitlab-runner/arm -n gitlab-runner-arm
|
||||
register: gitlab_runner_install_service_result
|
||||
failed_when: "gitlab_runner_install_service_result.rc != 0 and \"already exists\" not in gitlab_runner_install_service_result.stderr"
|
||||
when:
|
||||
- ansible_facts['distribution'] == 'Ubuntu'
|
||||
- ansible_facts['architecture'] == 'aarch64'
|
||||
- ansible_facts['distribution_version'] == '20.04'
|
||||
|
||||
- name: Enable the secondary gitlab-runner service
|
||||
service:
|
||||
name: gitlab-runner-arm
|
||||
state: started
|
||||
enabled: yes
|
||||
when:
|
||||
- ansible_facts['distribution'] == 'Ubuntu'
|
||||
- ansible_facts['architecture'] == 'aarch64'
|
||||
- ansible_facts['distribution_version'] == '20.04'
|
||||
|
@ -1,5 +1,3 @@
|
||||
# The version of the gitlab-runner to use
|
||||
gitlab_runner_version: 13.12.0
|
||||
# The URL of the gitlab server to use, usually https://gitlab.com unless you're
|
||||
# using a private GitLab instance
|
||||
gitlab_runner_server_url: https://gitlab.com
|
||||
|
Loading…
Reference in New Issue
Block a user