From: Thomas Huth <thuth@redhat.com>
To: "Philippe Mathieu-Daudé" <f4bug@amsat.org>, qemu-devel@nongnu.org
Cc: "Daniel P . Berrangé" <berrange@redhat.com>,
"Erik Skultety" <eskultet@redhat.com>,
"Wainer dos Santos Moschetta" <wainersm@redhat.com>,
"Willian Rampazzo" <willianr@redhat.com>,
"Cleber Rosa" <crosa@redhat.com>,
"Miroslav Rezanina" <mrezanin@redhat.com>,
"Alex Bennée" <alex.bennee@linaro.org>
Subject: Re: [PATCH 10/15] gitlab-ci: Extract all default build/test jobs to buildtest.yml
Date: Mon, 19 Apr 2021 07:39:48 +0200 [thread overview]
Message-ID: <b41d72b2-d2b1-24c2-7426-3838f1b2c7b9@redhat.com> (raw)
In-Reply-To: <20210418233448.1267991-11-f4bug@amsat.org>
On 19/04/2021 01.34, Philippe Mathieu-Daudé wrote:
> Extract the build/test jobs run by default on the mainstream
> CI into a new file (buildtest.yml) and their templates into
> (buildtest-template.yml), to be able to reuse the templates
> without having to run all these mainstream jobs by default.
>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> .gitlab-ci.d/buildtest-template.yml | 80 +++
> .gitlab-ci.d/buildtest.yml | 744 +++++++++++++++++++++++++
> .gitlab-ci.yml | 824 +---------------------------
> 3 files changed, 825 insertions(+), 823 deletions(-)
> create mode 100644 .gitlab-ci.d/buildtest-template.yml
> create mode 100644 .gitlab-ci.d/buildtest.yml
I like the idea, the main .gitlab-ci.yml was way to crowded already anyway.
Not sure if "buildtest.yml" is such a good name (since it's not only about
building, but also about testing), but I fail to come up with a better
suggestion...
Just a suggestion for discussion, not sure whether it's such a good idea
yet: Maybe we could split it up even further into "system.yml" (with the
various jobs that only test the "softmmu" binaries), "user.yml" (with the
--disable-system jobs) and "misc.yml" (with mixed jobs) ?
> diff --git a/.gitlab-ci.d/buildtest-template.yml b/.gitlab-ci.d/buildtest-template.yml
> new file mode 100644
> index 00000000000..b24a153d904
> --- /dev/null
> +++ b/.gitlab-ci.d/buildtest-template.yml
> @@ -0,0 +1,80 @@
> +.native_build_job_template:
> + stage: build
> + image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:latest
> + before_script:
> + - JOBS=$(expr $(nproc) + 1)
> + script:
> + - mkdir build
> + - cd build
> + - if test -n "$TARGETS";
> + then
> + ../configure --enable-werror --disable-docs $CONFIGURE_ARGS --target-list="$TARGETS" ;
> + else
> + ../configure --enable-werror --disable-docs $CONFIGURE_ARGS ;
> + fi || { cat config.log meson-logs/meson-log.txt && exit 1; }
> + - if test -n "$LD_JOBS";
> + then
> + meson configure . -Dbackend_max_links="$LD_JOBS" ;
> + fi || exit 1;
> + - make -j"$JOBS"
> + - if test -n "$MAKE_CHECK_ARGS";
> + then
> + make -j"$JOBS" $MAKE_CHECK_ARGS ;
> + fi
> +
> +.native_test_job_template:
> + stage: test
> + image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:latest
> + script:
> + - scripts/git-submodule.sh update
> + $(sed -n '/GIT_SUBMODULES=/ s/.*=// p' build/config-host.mak)
> + - cd build
> + - find . -type f -exec touch {} +
> + # Avoid recompiling by hiding ninja with NINJA=":"
> + - make NINJA=":" $MAKE_CHECK_ARGS
> +
> +.integration_test_job_template:
> + cache:
> + key: "${CI_JOB_NAME}-cache"
> + paths:
> + - ${CI_PROJECT_DIR}/avocado-cache
> + policy: pull-push
> + artifacts:
> + name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
> + when: always
> + expire_in: 2 days
> + paths:
> + - build/tests/results/latest/results.xml
> + - build/tests/results/latest/test-results
> + reports:
> + junit: build/tests/results/latest/results.xml
> + before_script:
> + - mkdir -p ~/.config/avocado
> + - echo "[datadir.paths]" > ~/.config/avocado/avocado.conf
> + - echo "cache_dirs = ['${CI_PROJECT_DIR}/avocado-cache']"
> + >> ~/.config/avocado/avocado.conf
> + - echo -e '[job.output.testlogs]\nstatuses = ["FAIL", "INTERRUPT"]'
> + >> ~/.config/avocado/avocado.conf
> + - if [ -d ${CI_PROJECT_DIR}/avocado-cache ]; then
> + du -chs ${CI_PROJECT_DIR}/avocado-cache ;
> + fi
> + - export AVOCADO_ALLOW_UNTRUSTED_CODE=1
> + after_script:
> + - cd build
> + - du -chs ${CI_PROJECT_DIR}/avocado-cache
> +
> +build-system-alpine:
> + extends: .native_build_job_template
> + needs:
> + - job: amd64-alpine-container
> + variables:
> + IMAGE: alpine
> + TARGETS: aarch64-softmmu alpha-softmmu cris-softmmu hppa-softmmu
> + moxie-softmmu microblazeel-softmmu mips64el-softmmu
> + MAKE_CHECK_ARGS: check-build
> + CONFIGURE_ARGS: --enable-docs --enable-trace-backends=log,simple,syslog
> + artifacts:
> + expire_in: 2 days
> + paths:
> + - .git-submodule-status
> + - build
build-system-alpine should certainly not go into the template file, but into
the file below instead.
> diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml
> new file mode 100644
> index 00000000000..c24553eab05
> --- /dev/null
> +++ b/.gitlab-ci.d/buildtest.yml
> @@ -0,0 +1,744 @@
[...]
> +check-patch:
> + stage: build
> + image: $CI_REGISTRY_IMAGE/qemu/centos8:latest
> + needs:
> + job: amd64-centos8-container
> + script: .gitlab-ci.d/check-patch.py
> + except:
> + variables:
> + - $CI_PROJECT_NAMESPACE == 'qemu-project' && $CI_COMMIT_BRANCH == 'master'
> + variables:
> + GIT_DEPTH: 1000
> + allow_failure: true
> +
> +check-dco:
> + stage: build
> + image: $CI_REGISTRY_IMAGE/qemu/centos8:latest
> + needs:
> + job: amd64-centos8-container
> + script: .gitlab-ci.d/check-dco.py
> + except:
> + variables:
> + - $CI_PROJECT_NAMESPACE == 'qemu-project' && $CI_COMMIT_BRANCH == 'master'
> + variables:
> + GIT_DEPTH: 1000
These two should not be here anymore since they have been handled in patch
08/15 already.
> +# No targets are built here, just tools, docs, and unit tests. This
> +# also feeds into the eventual documentation deployment steps later
> +build-tools-and-docs-debian:
> + extends: .native_build_job_template
> + needs:
> + job: amd64-debian-container
> + variables:
> + IMAGE: debian-amd64
> + MAKE_CHECK_ARGS: check-unit check-softfloat ctags TAGS cscope
> + CONFIGURE_ARGS: --disable-system --disable-user --enable-docs
--enable-tools
> + artifacts:
> + expire_in: 2 days
> + paths:
> + - build
> +
> +# Prepare for GitLab pages deployment. Anything copied into the
> +# "public" directory will be deployed to $USER.gitlab.io/$PROJECT
> +pages:
> + image: $CI_REGISTRY_IMAGE/qemu/debian-amd64:latest
> + stage: test
> + needs:
> + - job: build-tools-and-docs-debian
> + script:
> + - mkdir -p public
> + # HTML-ised source tree
> + - make gtags
> + - htags -anT --tree-view=filetree -m qemu_init
> + -t "Welcome to the QEMU sourcecode"
> + - mv HTML public/src
> + # Project documentation
> + - make -C build install DESTDIR=$(pwd)/temp-install
> + - mv temp-install/usr/local/share/doc/qemu/* public/
> + artifacts:
> + paths:
> + - public
I think the "pages" job should maybe rather go into a separate file instead
(maybe together with the build-tools-and-docs-debian job)?
Thomas
next prev parent reply other threads:[~2021-04-19 5:41 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-18 23:34 [RFC PATCH 00/15] gitlab-ci: Allow forks to use different pipelines than mainstream Philippe Mathieu-Daudé
2021-04-18 23:34 ` [PATCH 01/15] gitlab-ci: Replace YAML anchors by extends (container_job) Philippe Mathieu-Daudé
2021-04-18 23:34 ` [PATCH 02/15] gitlab-ci: Replace YAML anchors by extends (native_build_job) Philippe Mathieu-Daudé
2021-04-18 23:34 ` [PATCH 03/15] gitlab-ci: Replace YAML anchors by extends (native_test_job) Philippe Mathieu-Daudé
2021-04-18 23:34 ` [PATCH 04/15] gitlab-ci: Replace YAML anchors by extends (acceptance_test_job) Philippe Mathieu-Daudé
2021-05-03 9:22 ` Thomas Huth
2021-05-03 9:45 ` Philippe Mathieu-Daudé
2021-04-18 23:34 ` [PATCH 05/15] gitlab-ci: Rename acceptance_test_job -> integration_test_job Philippe Mathieu-Daudé
2021-04-19 5:19 ` Thomas Huth
2021-04-23 17:18 ` Willian Rampazzo
2021-04-18 23:34 ` [PATCH 06/15] gitlab-ci: Extract container job template to container-template.yml Philippe Mathieu-Daudé
2021-04-18 23:34 ` [PATCH 07/15] gitlab-ci: Extract crossbuild job templates to crossbuild-template.yml Philippe Mathieu-Daudé
2021-04-18 23:34 ` [PATCH 08/15] gitlab-ci: Extract DCO/style check jobs to checks.yml Philippe Mathieu-Daudé
2021-04-19 5:26 ` Thomas Huth
2021-04-19 13:44 ` Wainer dos Santos Moschetta
2021-04-18 23:34 ` [PATCH 09/15] gitlab-ci: Extract build stages to stages.yml Philippe Mathieu-Daudé
2021-04-18 23:34 ` [PATCH 10/15] gitlab-ci: Extract all default build/test jobs to buildtest.yml Philippe Mathieu-Daudé
2021-04-19 5:39 ` Thomas Huth [this message]
2021-04-19 15:11 ` Alex Bennée
2021-05-11 7:19 ` Philippe Mathieu-Daudé
2021-04-18 23:34 ` [PATCH 11/15] gitlab-ci: Extract core container jobs to container-core.yml Philippe Mathieu-Daudé
2021-04-19 5:42 ` Thomas Huth
2021-04-18 23:34 ` [PATCH 12/15] gitlab-ci: Move current job set to qemu-project.yml Philippe Mathieu-Daudé
2021-04-18 23:34 ` [RFC PATCH 13/15] gitlab-ci: Switch to dynamically generated pipelines Philippe Mathieu-Daudé
2021-04-18 23:34 ` [RFC PATCH 14/15] gitlab-ci: Allow forks to use different set of jobs Philippe Mathieu-Daudé
2021-04-19 5:48 ` Thomas Huth
2021-04-19 9:40 ` Daniel P. Berrangé
2021-04-19 10:09 ` Philippe Mathieu-Daudé
2021-04-19 10:10 ` Erik Skultety
2021-04-19 10:20 ` Thomas Huth
2021-04-19 10:36 ` Daniel P. Berrangé
2021-04-19 10:48 ` Thomas Huth
2021-04-19 10:51 ` Daniel P. Berrangé
2021-04-19 10:59 ` Thomas Huth
2021-05-11 6:48 ` Philippe Mathieu-Daudé
2021-05-11 13:55 ` Stefan Hajnoczi
2021-05-11 14:00 ` Alex Bennée
2021-05-11 14:21 ` Daniel P. Berrangé
2021-05-13 19:01 ` Philippe Mathieu-Daudé
2021-04-19 10:47 ` Daniel P. Berrangé
2021-04-19 10:44 ` Philippe Mathieu-Daudé
2021-04-19 15:57 ` Alex Bennée
2021-04-19 16:22 ` Daniel P. Berrangé
2021-04-19 16:46 ` Philippe Mathieu-Daudé
2021-04-19 16:58 ` Daniel P. Berrangé
2021-04-19 16:39 ` Philippe Mathieu-Daudé
2021-04-18 23:34 ` [NOTFORMERGE PATCH 15/15] gitlab-ci: Use my own set of jobs for CI pipeline Philippe Mathieu-Daudé
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=b41d72b2-d2b1-24c2-7426-3838f1b2c7b9@redhat.com \
--to=thuth@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=berrange@redhat.com \
--cc=crosa@redhat.com \
--cc=eskultet@redhat.com \
--cc=f4bug@amsat.org \
--cc=mrezanin@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=wainersm@redhat.com \
--cc=willianr@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).