migration: Do not call PRECOPY_NOTIFY_SETUP notifiers in case of error
[qemu/armbru.git] / .gitlab-ci.d / crossbuild-template.yml
blob3e5f4d9cd8bd0482bbe5e7df8337ba15bcb934f1
1 .cross_system_build_job:
2   extends: .base_job_template
3   stage: build
4   image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
5   cache:
6     paths:
7       - ccache
8     key: "$CI_JOB_NAME"
9     when: always
10   timeout: 80m
11   script:
12     - export CCACHE_BASEDIR="$(pwd)"
13     - export CCACHE_DIR="$CCACHE_BASEDIR/ccache"
14     - export CCACHE_MAXSIZE="500M"
15     - export PATH="$CCACHE_WRAPPERSDIR:$PATH"
16     - mkdir build
17     - cd build
18     - ccache --zero-stats
19     - ../configure --enable-werror --disable-docs --enable-fdt=system
20         --disable-user $QEMU_CONFIGURE_OPTS $EXTRA_CONFIGURE_OPTS
21         --target-list-exclude="arm-softmmu cris-softmmu
22           i386-softmmu microblaze-softmmu mips-softmmu mipsel-softmmu
23           mips64-softmmu ppc-softmmu riscv32-softmmu sh4-softmmu
24           sparc-softmmu xtensa-softmmu $CROSS_SKIP_TARGETS"
25     - make -j$(expr $(nproc) + 1) all check-build $MAKE_CHECK_ARGS
26     - if grep -q "EXESUF=.exe" config-host.mak;
27       then make installer;
28       version="$(git describe --match v[0-9]* 2>/dev/null || git rev-parse --short HEAD)";
29       mv -v qemu-setup*.exe qemu-setup-${version}.exe;
30       fi
31     - ccache --show-stats
33 # Job to cross-build specific accelerators.
35 # Set the $ACCEL variable to select the specific accelerator (default to
36 # KVM), and set extra options (such disabling other accelerators) via the
37 # $EXTRA_CONFIGURE_OPTS variable.
38 .cross_accel_build_job:
39   extends: .base_job_template
40   stage: build
41   image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
42   timeout: 30m
43   cache:
44     paths:
45       - ccache/
46     key: "$CI_JOB_NAME"
47   script:
48     - export CCACHE_BASEDIR="$(pwd)"
49     - export CCACHE_DIR="$CCACHE_BASEDIR/ccache"
50     - export CCACHE_MAXSIZE="500M"
51     - export PATH="$CCACHE_WRAPPERSDIR:$PATH"
52     - mkdir build
53     - cd build
54     - ../configure --enable-werror --disable-docs $QEMU_CONFIGURE_OPTS
55         --disable-tools --enable-${ACCEL:-kvm} $EXTRA_CONFIGURE_OPTS
56     - make -j$(expr $(nproc) + 1) all check-build $MAKE_CHECK_ARGS
58 .cross_user_build_job:
59   extends: .base_job_template
60   stage: build
61   image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
62   cache:
63     paths:
64       - ccache/
65     key: "$CI_JOB_NAME"
66   script:
67     - export CCACHE_BASEDIR="$(pwd)"
68     - export CCACHE_DIR="$CCACHE_BASEDIR/ccache"
69     - export CCACHE_MAXSIZE="500M"
70     - mkdir build
71     - cd build
72     - ../configure --enable-werror --disable-docs $QEMU_CONFIGURE_OPTS
73         --disable-system --target-list-exclude="aarch64_be-linux-user
74           alpha-linux-user cris-linux-user m68k-linux-user microblazeel-linux-user
75           nios2-linux-user or1k-linux-user ppc-linux-user sparc-linux-user
76           xtensa-linux-user $CROSS_SKIP_TARGETS"
77     - make -j$(expr $(nproc) + 1) all check-build $MAKE_CHECK_ARGS
79 # We can still run some tests on some of our cross build jobs. They can add this
80 # template to their extends to save the build logs and test results
81 .cross_test_artifacts:
82   artifacts:
83     name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
84     when: always
85     expire_in: 7 days
86     paths:
87       - build/meson-logs/testlog.txt
88     reports:
89       junit: build/meson-logs/testlog.junit.xml