All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: qemu-devel@nongnu.org
Cc: qemu-arm@nongnu.org, qemu-s390x@nongnu.org,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>,
	"Thomas Huth" <thuth@redhat.com>,
	"Wainer dos Santos Moschetta" <wainersm@redhat.com>,
	"Beraldo Leal" <bleal@redhat.com>
Subject: Re: [RFC PATCH] scripts/ci: update gitlab-runner playbook to use latest runner
Date: Fri, 06 Jan 2023 13:47:35 +0000	[thread overview]
Message-ID: <87eds7pyd9.fsf@linaro.org> (raw)
In-Reply-To: <20230106132401.2544543-1-alex.bennee@linaro.org>


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	other threads:[~2023-01-06 13:48 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-06 13:24 [RFC PATCH] scripts/ci: update gitlab-runner playbook to use latest runner Alex Bennée
2023-01-06 13:47 ` Alex Bennée [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87eds7pyd9.fsf@linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=bleal@redhat.com \
    --cc=philmd@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    --cc=thuth@redhat.com \
    --cc=wainersm@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.