[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 10/15] gitlab-ci: Extract all default build/test jobs to buil
From: |
Alex Bennée |
Subject: |
Re: [PATCH 10/15] gitlab-ci: Extract all default build/test jobs to buildtest.yml |
Date: |
Mon, 19 Apr 2021 16:11:26 +0100 |
User-agent: |
mu4e 1.5.11; emacs 28.0.50 |
Philippe Mathieu-Daudé <f4bug@amsat.org> writes:
> 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
>
> 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
I don't know if my suggestion further bellow requires moving the above:
> +build-system-alpine:
> +check-system-alpine:
> +acceptance-system-alpine:
Maybe these can be moved into buildtest-rolling? Or maybe
buildtest-[unsupported|other]?
<snip>
<snip>
> +build-disabled:
> +build-tcg-disabled:
to buildtest-custom?
> +build-user-plugins:
> +build-some-softmmu-plugins:
> +clang-system:
> +clang-user:
> +build-cfi-aarch64:
> +check-cfi-aarch64:
> +acceptance-cfi-aarch64:
> +build-cfi-ppc64-s390x:
> +check-cfi-ppc64-s390x:
> +acceptance-cfi-ppc64-s390x:
> +build-cfi-x86_64:
> +check-cfi-x86_64:
> +acceptance-cfi-x86_64:
> +tsan-build:
to buildtest-developer? is CFI a dev feature or a distro feature?
Arguably they could be grouped together.
<snip>
> +# These targets are on the way out
> +build-deprecated:
> +check-deprecated:
buildtest-developer or even buildtest-deprecated?
<snip>
> +gprof-gcov:
> +build-oss-fuzz:
buildtest-developer?
> +build-tci:
> +build-coroutine-sigaltstack:
buildtest-custom?
<snip>
> +crypto-old-nettle:
> +crypto-old-gcrypt:
buildtest-custom or buildtest-legacy?
> +crypto-only-gnutls:
> +build-without-default-devices:
> +build-without-default-features:
buildtest-custom.
> +check-patch:
> +check-dco:
buildtest-developer or maybe their own pr-qa?
> +build-libvhost-user:
> + stage: build
> + image: $CI_REGISTRY_IMAGE/qemu/fedora:latest
> + needs:
> + job: amd64-fedora-container
> + before_script:
> + - dnf install -y meson ninja-build
> + script:
> + - mkdir subprojects/libvhost-user/build
> + - cd subprojects/libvhost-user/build
> + - meson
> + - ninja
I dunno, buildtest-misc?
> +# 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:
> +pages:
Seems these could be under their own documentation section?
--
Alex Bennée
- [PATCH 05/15] gitlab-ci: Rename acceptance_test_job -> integration_test_job, (continued)
- [PATCH 05/15] gitlab-ci: Rename acceptance_test_job -> integration_test_job, Philippe Mathieu-Daudé, 2021/04/18
- [PATCH 06/15] gitlab-ci: Extract container job template to container-template.yml, Philippe Mathieu-Daudé, 2021/04/18
- [PATCH 07/15] gitlab-ci: Extract crossbuild job templates to crossbuild-template.yml, Philippe Mathieu-Daudé, 2021/04/18
- [PATCH 08/15] gitlab-ci: Extract DCO/style check jobs to checks.yml, Philippe Mathieu-Daudé, 2021/04/18
- [PATCH 09/15] gitlab-ci: Extract build stages to stages.yml, Philippe Mathieu-Daudé, 2021/04/18
- [PATCH 10/15] gitlab-ci: Extract all default build/test jobs to buildtest.yml, Philippe Mathieu-Daudé, 2021/04/18
- [PATCH 11/15] gitlab-ci: Extract core container jobs to container-core.yml, Philippe Mathieu-Daudé, 2021/04/18
- [PATCH 12/15] gitlab-ci: Move current job set to qemu-project.yml, Philippe Mathieu-Daudé, 2021/04/18
- [RFC PATCH 13/15] gitlab-ci: Switch to dynamically generated pipelines, Philippe Mathieu-Daudé, 2021/04/18
- [RFC PATCH 14/15] gitlab-ci: Allow forks to use different set of jobs, Philippe Mathieu-Daudé, 2021/04/18