Philippe Mathieu-Daudé <f4...@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é <f4...@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