From: Cleber Rosa <crosa@redhat.com>
To: Erik Skultety <eskultet@redhat.com>
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
"Thomas Huth" <thuth@redhat.com>,
"Daniel P. Berrangé" <berrange@redhat.com>,
"Beraldo Leal" <bleal@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@redhat.com>,
qemu-devel@nongnu.org,
"Wainer dos Santos Moschetta" <wainersm@redhat.com>,
"Willian Rampazzo" <wrampazz@redhat.com>,
"Alex Bennée" <alex.bennee@linaro.org>,
"Eduardo Habkost" <ehabkost@redhat.com>
Subject: Re: [PATCH v2 2/2] GitLab Gating CI: initial set of jobs, documentation and scripts
Date: Thu, 3 Sep 2020 17:12:11 -0400 [thread overview]
Message-ID: <20200903211211.GC55646@localhost.localdomain> (raw)
In-Reply-To: <20200709085507.GA536480@nautilus.usersys.redhat.com>
[-- Attachment #1: Type: text/plain, Size: 6192 bytes --]
On Thu, Jul 09, 2020 at 10:55:07AM +0200, Erik Skultety wrote:
> On Wed, Jul 08, 2020 at 10:46:57PM -0400, Cleber Rosa wrote:
> > This is a mapping of Peter's "remake-merge-builds" and
> > "pull-buildtest" scripts, gone through some updates, adding some build
> > option and removing others.
> >
> > The jobs currently cover the machines that the QEMU project owns, and that
> > are setup and ready to run jobs:
> >
> > - Ubuntu 18.04 on S390x
> > - Ubuntu 20.04 on aarch64
> >
> > During the development of this set of jobs, the GitLab CI was tested
> > with many other architectures, including ppc64, s390x and aarch64,
> > along with the other OSs (not included here):
> >
> > - Fedora 30
> > - FreeBSD 12.1
> >
> > More information can be found in the documentation itself.
> >
> > Signed-off-by: Cleber Rosa <crosa@redhat.com>
> > ---
> > .gitlab-ci.d/gating.yml | 146 +++++++++++++++++
> > .gitlab-ci.yml | 1 +
> > docs/devel/testing.rst | 147 +++++++++++++++++
> > scripts/ci/setup/build-environment.yml | 217 +++++++++++++++++++++++++
> > scripts/ci/setup/gitlab-runner.yml | 72 ++++++++
> > scripts/ci/setup/inventory | 2 +
> > scripts/ci/setup/vars.yml | 13 ++
> > 7 files changed, 598 insertions(+)
> > create mode 100644 .gitlab-ci.d/gating.yml
> > create mode 100644 scripts/ci/setup/build-environment.yml
> > create mode 100644 scripts/ci/setup/gitlab-runner.yml
> > create mode 100644 scripts/ci/setup/inventory
> > create mode 100644 scripts/ci/setup/vars.yml
> >
> > diff --git a/.gitlab-ci.d/gating.yml b/.gitlab-ci.d/gating.yml
> > new file mode 100644
> > index 0000000000..5562df5708
> > --- /dev/null
> > +++ b/.gitlab-ci.d/gating.yml
> > @@ -0,0 +1,146 @@
> > +variables:
> > + GIT_SUBMODULE_STRATEGY: recursive
> > +
> > +# All ubuntu-18.04 jobs should run successfully in an environment
> > +# setup by the scripts/ci/setup/build-environment.yml task
> > +# "Install basic packages to build QEMU on Ubuntu 18.04/20.04"
> > +ubuntu-18.04-s390x-all-linux-static:
> > + tags:
> > + - ubuntu_18.04
> > + - s390x
> > + rules:
> > + - if: '$CI_COMMIT_REF_NAME == "staging"'
> > + script:
> > + # --disable-libssh is needed because of https://bugs.launchpad.net/qemu/+bug/1838763
> > + # --disable-glusterfs is needed because there's no static version of those libs in distro supplied packages
> > + - ./configure --enable-debug --static --disable-system --disable-glusterfs --disable-libssh
> > + - make --output-sync -j`nproc`
> > + - make --output-sync -j`nproc` check V=1
> > + - make --output-sync -j`nproc` check-tcg V=1
>
> I know this patch doesn't introduce a FreeBSD job, but later in the patch it's
> clear you'd want to introduce them at some point, so:
> 'nproc' doesn't exist on FreeBSD, but `getconf _NPROCESSORS_ONLN` does, so you
> may want to use it right from the start.
>
> ...
>
Sure, thanks for the info.
> > +
> > +CI
> > +==
> > +
> > +QEMU has configurations enabled for a number of different CI services.
> > +The most update information about them and their status can be found
>
> s/update/up to date/
>
Good catch!
> > +at::
> > +
> > + https://wiki.qemu.org/Testing/CI
> > +
> > +Gating CI
> > +----------
> > +
> > +A Pull Requests will only to be merged if they successfully go through
>
> s/A /
> s/to be/be/
>
> > +a different set of CI jobs. GitLab's CI is the service/framework used
>
> s/a different set/different sets/ (I may be wrong with this one)
>
> ...
I think you're right. But, to keep it simpler, I'm using:
"Pull Requests will only be merged if they successfully go through
different CI jobs."
>
> > +
> > +gitlab-runner setup and registration
> > +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > +
> > +The gitlab-runner agent needs to be installed on each machine that
> > +will run jobs. The association between a machine and a GitLab project
> > +happens with a registration token. To find the registration token for
> > +your repository/project, navigate on GitLab's web UI to:
> > +
> > + * Settings (the gears like icon), then
> > + * CI/CD, then
> > + * Runners, and click on the "Expand" button, then
> > + * Under "Set up a specific Runner manually", look for the value under
> > + "Use the following registration token during setup"
> > +
> > +Edit the ``scripts/ci/setup/vars.yml`` file, setting the
> > +``gitlab_runner_registration_token`` variable to the value obtained
> > +earlier.
> > +
> > +.. note:: gitlab-runner is not available from the standard location
> > + for all OS and architectures combinations. For some systems,
> > + a custom build may be necessary. Some builds are avaiable
> > + at https://cleber.fedorapeople.org/gitlab-runner/ and this
> > + URI may be used as a value on ``vars.yml``
> > +
> > +To run the playbook, execute::
> > +
> > + cd scripts/ci/setup
> > + ansible-playbook -i inventory gitlab-runner.yml
> > +
> > +.. note:: there are currently limitations to gitlab-runner itself when
> > + setting up a service under FreeBSD systems. You will need to
> > + perform steps 4 to 10 manually, as described at
> > + https://docs.gitlab.com/runner/install/freebsd.html
>
> What kinds of limitations? Is it architecture constrained maybe? I'm asking
> because we have all of the steps covered by an Ansible playbook, so I kinda got
> triggered by the word "manually". Also, the document only mentions 9 steps
> overall.
>
FreeBSD's "service management" (systemd/sys-v like) is not covered by
the GO library[1] used on gitlab-runner. It's not ideal, and the
second best solution would be to script the equivalent handling within
the playbook, but I remember trying and finding some inconsistencies.
Then, I had to give it up and defer to whenever a FreeBSD job is
actually added.
> Regards,
> Erik
[1] - https://github.com/ayufan/golang-kardianos-service
Thanks for the review, I'll be sending a v3 shortly.
- Cleber.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2020-09-03 21:52 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-09 2:46 [PATCH v2 0/2] QEMU Gating CI Cleber Rosa
2020-07-09 2:46 ` [PATCH v2 1/2] GitLab Gating CI: introduce pipeline-status contrib script Cleber Rosa
2020-07-09 8:55 ` Erik Skultety
2020-07-09 10:13 ` Philippe Mathieu-Daudé
2020-07-13 7:20 ` Thomas Huth
2020-09-02 22:09 ` Cleber Rosa
2020-09-02 22:01 ` Cleber Rosa
2020-07-09 11:50 ` Thomas Huth
2020-07-09 2:46 ` [PATCH v2 2/2] GitLab Gating CI: initial set of jobs, documentation and scripts Cleber Rosa
2020-07-09 8:55 ` Erik Skultety
2020-09-03 21:12 ` Cleber Rosa [this message]
2020-09-04 9:11 ` Andrea Bolognani
2020-09-04 14:27 ` Cleber Rosa
2020-07-09 10:07 ` Philippe Mathieu-Daudé
2020-09-03 23:17 ` Cleber Rosa
2020-07-09 10:30 ` Daniel P. Berrangé
2020-07-09 11:28 ` Andrea Bolognani
2020-09-04 0:18 ` Cleber Rosa
2020-09-04 8:23 ` Daniel P. Berrangé
2020-09-04 14:40 ` Cleber Rosa
2020-09-04 0:11 ` Cleber Rosa
2020-09-04 8:18 ` Daniel P. Berrangé
2020-09-04 15:10 ` Cleber Rosa
2020-09-04 9:53 ` Gerd Hoffmann
2020-07-29 10:16 ` Stefan Hajnoczi
2020-09-04 0:36 ` Cleber Rosa
2020-09-04 9:47 ` Philippe Mathieu-Daudé
2020-07-20 16:18 ` [PATCH v2 0/2] QEMU Gating CI Peter Maydell
2020-07-20 17:22 ` Cleber Rosa
2020-07-28 14:48 ` Peter Maydell
2020-07-28 14:51 ` Daniel P. Berrangé
2020-07-28 16:13 ` Cleber Rosa
2020-07-28 16:15 ` Daniel P. Berrangé
2020-07-28 16:24 ` Cleber Rosa
2020-07-28 15:50 ` Cleber Rosa
2020-07-28 16:08 ` Peter Maydell
2020-07-28 16:33 ` Cleber Rosa
2020-07-28 16:41 ` Philippe Mathieu-Daudé
2020-07-28 16:54 ` Peter Maydell
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=20200903211211.GC55646@localhost.localdomain \
--to=crosa@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=berrange@redhat.com \
--cc=bleal@redhat.com \
--cc=ehabkost@redhat.com \
--cc=eskultet@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=thuth@redhat.com \
--cc=wainersm@redhat.com \
--cc=wrampazz@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.