qemu-s390x
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [RFC PATCH] scripts/ci: update gitlab-runner playbook to use latest


From: Alex Bennée
Subject: Re: [RFC PATCH] scripts/ci: update gitlab-runner playbook to use latest runner
Date: Fri, 06 Jan 2023 13:47:35 +0000
User-agent: mu4e 1.9.11; emacs 29.0.60

Alex Bennée <alex.bennee@linaro.org> writes:

> 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
>
> So far I've tested on aarch64.ci.qemu.org but I shall do s390x next as
> its having issues with stale runners as well.
>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> ---
>  scripts/ci/setup/gitlab-runner.yml | 42 ++++++++++++++++--------------
>  scripts/ci/setup/vars.yml.template |  2 --
>  2 files changed, 22 insertions(+), 22 deletions(-)
>
> diff --git a/scripts/ci/setup/gitlab-runner.yml 
> b/scripts/ci/setup/gitlab-runner.yml
> index 33128be85d..05cdb2ae4b 100644
> --- a/scripts/ci/setup/gitlab-runner.yml
> +++ b/scripts/ci/setup/gitlab-runner.yml
> @@ -30,6 +30,11 @@
>          home: /home/gitlab-runner
>          shell: /bin/bash
>  
> +    - name: Create working directories for build
> +      file:
> +        path: "/home/gitlab-runner/{{ ansible_facts[\"architecture\"] }}"
> +        state: directory
> +
>      - name: Remove the .bash_logout file when on Ubuntu systems
>        file:
>          path: /home/gitlab-runner/.bash_logout
> @@ -50,17 +55,17 @@
>  
>      - 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\"] 
> }})'"
>  
>      - 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/{{ ansible_facts[\"architecture\"] }}"
>        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"
>  
> @@ -70,33 +75,30 @@
>          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
> +    - name: Create working directories secondary runner
> +      file:
> +        path: "/home/gitlab-runner/arm"
> +        state: directory
>        when:
>          - ansible_facts['distribution'] == 'Ubuntu'
>          - ansible_facts['architecture'] == 'aarch64'
> -        - ansible_facts['distribution_version'] == '20.04'
> +        - ansible_facts['distribution_version'] == '22.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\"] 
> }})'"
> +      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'

  I think everything bellow here can be dropped now as both runners seem
  to be showing the same runner ids:

  13:42:48 [root@aarch64:/e/systemd] + systemctl status gitlab-runner-arm
  ● gitlab-runner-arm.service - GitLab Runner
       Loaded: loaded (/etc/systemd/system/gitlab-runner-arm.service; enabled; 
vendor preset: enabled)
       Active: active (running) since Fri 2023-01-06 13:42:45 UTC; 9s ago
     Main PID: 38362 (gitlab-runner)
        Tasks: 33 (limit: 307985)
       Memory: 16.0M
          CPU: 81ms
       CGroup: /system.slice/gitlab-runner-arm.service
               └─38362 /usr/bin/gitlab-runner run --working-directory 
/home/gitlab-runner/arm --config /etc/gitlab-runner/config.toml --service 
gitlab-runner-arm --user gitla>

  Jan 06 13:42:45 aarch64.ci.qemu.org gitlab-runner[38362]: Running in 
system-mode.                           
  Jan 06 13:42:45 aarch64.ci.qemu.org gitlab-runner[38362]:                     
                              
  Jan 06 13:42:45 aarch64.ci.qemu.org gitlab-runner[38362]: Configuration 
loaded                                builds=0
  Jan 06 13:42:45 aarch64.ci.qemu.org gitlab-runner[38362]: listen_address not 
defined, metrics & debug endpoints disabled  builds=0
  Jan 06 13:42:45 aarch64.ci.qemu.org gitlab-runner[38362]: 
[session_server].listen_address not defined, session endpoints disabled  
builds=0
  Jan 06 13:42:45 aarch64.ci.qemu.org gitlab-runner[38362]: Initializing 
executor providers                     builds=0
  Jan 06 13:42:45 aarch64.ci.qemu.org gitlab-runner[38362]: Checking for 
jobs...nothing                         runner=HXc1tXPb
  Jan 06 13:42:46 aarch64.ci.qemu.org gitlab-runner[38362]: Checking for 
jobs...nothing                         runner=pwrzaBKo
  Jan 06 13:42:47 aarch64.ci.qemu.org gitlab-runner[38362]: Checking for 
jobs...nothing                         runner=E8PpwMky
  Jan 06 13:42:47 aarch64.ci.qemu.org gitlab-runner[38362]: Checking for 
jobs...nothing                         runner=syqX1xoo
  13:43:06 [root@aarch64:/e/systemd] + systemctl status gitlab-runner
  ● gitlab-runner.service - GitLab Runner
       Loaded: loaded (/etc/systemd/system/gitlab-runner.service; enabled; 
vendor preset: enabled)
       Active: active (running) since Fri 2023-01-06 13:42:42 UTC; 28s ago
     Main PID: 38270 (gitlab-runner)
        Tasks: 27 (limit: 307985)
       Memory: 14.3M
          CPU: 70ms
       CGroup: /system.slice/gitlab-runner.service
               └─38270 /usr/bin/gitlab-runner run --working-directory 
/home/gitlab-runner --config /etc/gitlab-runner/config.toml --service 
gitlab-runner --user gitlab-runner

  Jan 06 13:42:42 aarch64.ci.qemu.org gitlab-runner[38270]: Running in 
system-mode.                           
  Jan 06 13:42:42 aarch64.ci.qemu.org gitlab-runner[38270]:                     
                              
  Jan 06 13:42:42 aarch64.ci.qemu.org gitlab-runner[38270]: Configuration 
loaded                                builds=0
  Jan 06 13:42:42 aarch64.ci.qemu.org gitlab-runner[38270]: listen_address not 
defined, metrics & debug endpoints disabled  builds=0
  Jan 06 13:42:42 aarch64.ci.qemu.org gitlab-runner[38270]: 
[session_server].listen_address not defined, session endpoints disabled  
builds=0
  Jan 06 13:42:42 aarch64.ci.qemu.org gitlab-runner[38270]: Initializing 
executor providers                     builds=0
  Jan 06 13:42:43 aarch64.ci.qemu.org gitlab-runner[38270]: Checking for 
jobs...nothing                         runner=HXc1tXPb
  Jan 06 13:42:43 aarch64.ci.qemu.org gitlab-runner[38270]: Checking for 
jobs...nothing                         runner=pwrzaBKo
  Jan 06 13:42:44 aarch64.ci.qemu.org gitlab-runner[38270]: Checking for 
jobs...nothing                         runner=E8PpwMky
  Jan 06 13:42:45 aarch64.ci.qemu.org gitlab-runner[38270]: Checking for 
jobs...nothing                         runner=syqX1xoo



-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro



reply via email to

[Prev in Thread] Current Thread [Next in Thread]