[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 01/35] scripts/ci: update gitlab-runner playbook to use latest run
From: |
Alex Bennée |
Subject: |
[PULL 01/35] scripts/ci: update gitlab-runner playbook to use latest runner |
Date: |
Thu, 26 Jan 2023 11:22:16 +0000 |
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>
diff --git a/scripts/ci/setup/gitlab-runner.yml
b/scripts/ci/setup/gitlab-runner.yml
index 33128be85d..95d4199c03 100644
--- a/scripts/ci/setup/gitlab-runner.yml
+++ b/scripts/ci/setup/gitlab-runner.yml
@@ -50,60 +50,30 @@
- 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
-
- - 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\"] }})'"
-
- - 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
- 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"
+ dest: "/root/"
+ url:
"https://gitlab-runner-downloads.s3.amazonaws.com/latest/deb/gitlab-runner_{{
gitlab_runner_arch }}.deb"
- - name: Enable the gitlab-runner service
- service:
- name: gitlab-runner
- state: started
- enabled: yes
+ - name: Install gitlab-runner via package manager
+ apt: deb="/root/gitlab-runner_{{ gitlab_runner_arch }}.deb"
- - 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 the 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 {{
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/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\"] }})'"
+ 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'] == '20.04'
+ - ansible_facts['distribution_version'] == '22.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
+ - name: Install the gitlab-runner service using its own functionality
+ 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"
- when:
- - ansible_facts['distribution'] == 'Ubuntu'
- - ansible_facts['architecture'] == 'aarch64'
- - ansible_facts['distribution_version'] == '20.04'
- - name: Enable the secondary gitlab-runner service
+ - name: Enable the gitlab-runner service
service:
- name: gitlab-runner-arm
+ name: gitlab-runner
state: started
enabled: yes
- when:
- - ansible_facts['distribution'] == 'Ubuntu'
- - ansible_facts['architecture'] == 'aarch64'
- - ansible_facts['distribution_version'] == '20.04'
diff --git a/scripts/ci/setup/vars.yml.template
b/scripts/ci/setup/vars.yml.template
index e48089761f..4b355fb80f 100644
--- a/scripts/ci/setup/vars.yml.template
+++ b/scripts/ci/setup/vars.yml.template
@@ -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
--
2.34.1
- [PULL 00/35] Testing, docs, semihosting and plugin updates, Alex Bennée, 2023/01/26
- [PULL 02/35] gitlab: add FF_SCRIPT_SECTIONS for timings, Alex Bennée, 2023/01/26
- [PULL 04/35] tests/unit: drop hacky race avoidance in test-io-channel-command, Alex Bennée, 2023/01/26
- [PULL 01/35] scripts/ci: update gitlab-runner playbook to use latest runner,
Alex Bennée <=
- [PULL 03/35] gitlab: just use plain --cc=clang for custom runner build, Alex Bennée, 2023/01/26
- [PULL 05/35] build-sys: fix crlf-ending C code, Alex Bennée, 2023/01/26
- [PULL 10/35] Update lcitool and fedora to 37, Alex Bennée, 2023/01/26
- [PULL 12/35] lcitool: drop texinfo from QEMU project/dependencies, Alex Bennée, 2023/01/26
- [PULL 07/35] meson: replace Perl usage with Python, Alex Bennée, 2023/01/26
- [PULL 08/35] docs: drop texinfo options, Alex Bennée, 2023/01/26
- [PULL 17/35] gitlab: wrap up test results for custom runners, Alex Bennée, 2023/01/26
- [PULL 11/35] lcitool: drop perl from QEMU project/dependencies, Alex Bennée, 2023/01/26
- [PULL 06/35] .gitlab-ci.d/windows: do not disable opengl, Alex Bennée, 2023/01/26
- [PULL 18/35] MAINTAINERS: Fix the entry for tests/tcg/nios2, Alex Bennée, 2023/01/26