16cd5251bSPhilippe Mathieu-Daudé.native_build_job_template:
2e312d1fdSDaniel P. Berrangé  extends: .base_job_template
36cd5251bSPhilippe Mathieu-Daudé  stage: build
4d4c7a565SDaniel P. Berrangé  image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
52f7350cdSDaniel P. Berrangé  cache:
62f7350cdSDaniel P. Berrangé    paths:
72f7350cdSDaniel P. Berrangé      - ccache
82f7350cdSDaniel P. Berrangé    key: "$CI_JOB_NAME"
92f7350cdSDaniel P. Berrangé    when: always
106cd5251bSPhilippe Mathieu-Daudé  before_script:
116cd5251bSPhilippe Mathieu-Daudé    - JOBS=$(expr $(nproc) + 1)
126cd5251bSPhilippe Mathieu-Daudé  script:
132f7350cdSDaniel P. Berrangé    - export CCACHE_BASEDIR="$(pwd)"
142f7350cdSDaniel P. Berrangé    - export CCACHE_DIR="$CCACHE_BASEDIR/ccache"
152f7350cdSDaniel P. Berrangé    - export CCACHE_MAXSIZE="500M"
162f7350cdSDaniel P. Berrangé    - export PATH="$CCACHE_WRAPPERSDIR:$PATH"
17*9837697bSAlex Bennée    - du -sh .git
186cd5251bSPhilippe Mathieu-Daudé    - mkdir build
196cd5251bSPhilippe Mathieu-Daudé    - cd build
202f7350cdSDaniel P. Berrangé    - ccache --zero-stats
21eda2321dSThomas Huth    - ../configure --enable-werror --disable-docs --enable-fdt=system
2266e2c6cbSJohn Snow          ${TARGETS:+--target-list="$TARGETS"}
2322ebcba0SThomas Huth          $CONFIGURE_ARGS ||
2422ebcba0SThomas Huth      { cat config.log meson-logs/meson-log.txt && exit 1; }
256cd5251bSPhilippe Mathieu-Daudé    - if test -n "$LD_JOBS";
266cd5251bSPhilippe Mathieu-Daudé      then
2766e2c6cbSJohn Snow        pyvenv/bin/meson configure . -Dbackend_max_links="$LD_JOBS" ;
286cd5251bSPhilippe Mathieu-Daudé      fi || exit 1;
296cd5251bSPhilippe Mathieu-Daudé    - make -j"$JOBS"
306cd5251bSPhilippe Mathieu-Daudé    - if test -n "$MAKE_CHECK_ARGS";
316cd5251bSPhilippe Mathieu-Daudé      then
326cd5251bSPhilippe Mathieu-Daudé        make -j"$JOBS" $MAKE_CHECK_ARGS ;
336cd5251bSPhilippe Mathieu-Daudé      fi
342f7350cdSDaniel P. Berrangé    - ccache --show-stats
356cd5251bSPhilippe Mathieu-Daudé
3688b19e4eSAlex Bennée# We jump some hoops in common_test_job_template to avoid
3788b19e4eSAlex Bennée# rebuilding all the object files we skip in the artifacts
3888b19e4eSAlex Bennée.native_build_artifact_template:
3988b19e4eSAlex Bennée  artifacts:
40cef63308SDaniel P. Berrangé    when: on_success
4188b19e4eSAlex Bennée    expire_in: 2 days
4288b19e4eSAlex Bennée    paths:
4388b19e4eSAlex Bennée      - build
4488b19e4eSAlex Bennée      - .git-submodule-status
4588b19e4eSAlex Bennée    exclude:
4688b19e4eSAlex Bennée      - build/**/*.p
4788b19e4eSAlex Bennée      - build/**/*.a.p
4888b19e4eSAlex Bennée      - build/**/*.fa.p
4988b19e4eSAlex Bennée      - build/**/*.c.o
5088b19e4eSAlex Bennée      - build/**/*.c.o.d
5188b19e4eSAlex Bennée      - build/**/*.fa
5288b19e4eSAlex Bennée
5329a49376SDaniel P. Berrangé.common_test_job_template:
54e312d1fdSDaniel P. Berrangé  extends: .base_job_template
556cd5251bSPhilippe Mathieu-Daudé  stage: test
56d4c7a565SDaniel P. Berrangé  image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
576cd5251bSPhilippe Mathieu-Daudé  script:
581f468152SPaolo Bonzini    - scripts/git-submodule.sh update roms/SLOF
592019cabfSPaolo Bonzini    - meson subprojects download $(cd build/subprojects && echo *)
606cd5251bSPhilippe Mathieu-Daudé    - cd build
616cd5251bSPhilippe Mathieu-Daudé    - find . -type f -exec touch {} +
626cd5251bSPhilippe Mathieu-Daudé    # Avoid recompiling by hiding ninja with NINJA=":"
636cd5251bSPhilippe Mathieu-Daudé    - make NINJA=":" $MAKE_CHECK_ARGS
646cd5251bSPhilippe Mathieu-Daudé
6529a49376SDaniel P. Berrangé.native_test_job_template:
6629a49376SDaniel P. Berrangé  extends: .common_test_job_template
6729a49376SDaniel P. Berrangé  artifacts:
6829a49376SDaniel P. Berrangé    name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
69cef63308SDaniel P. Berrangé    when: always
7029a49376SDaniel P. Berrangé    expire_in: 7 days
7129a49376SDaniel P. Berrangé    paths:
7229a49376SDaniel P. Berrangé      - build/meson-logs/testlog.txt
73861dca37SMarc-André Lureau    reports:
74861dca37SMarc-André Lureau      junit: build/meson-logs/testlog.junit.xml
7529a49376SDaniel P. Berrangé
76bbbd9b6eSWillian Rampazzo.avocado_test_job_template:
7729a49376SDaniel P. Berrangé  extends: .common_test_job_template
786cd5251bSPhilippe Mathieu-Daudé  cache:
796cd5251bSPhilippe Mathieu-Daudé    key: "${CI_JOB_NAME}-cache"
806cd5251bSPhilippe Mathieu-Daudé    paths:
816cd5251bSPhilippe Mathieu-Daudé      - ${CI_PROJECT_DIR}/avocado-cache
826cd5251bSPhilippe Mathieu-Daudé    policy: pull-push
836cd5251bSPhilippe Mathieu-Daudé  artifacts:
846cd5251bSPhilippe Mathieu-Daudé    name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
85cef63308SDaniel P. Berrangé    when: always
86f230dba7SPhilippe Mathieu-Daudé    expire_in: 7 days
876cd5251bSPhilippe Mathieu-Daudé    paths:
886cd5251bSPhilippe Mathieu-Daudé      - build/tests/results/latest/results.xml
896cd5251bSPhilippe Mathieu-Daudé      - build/tests/results/latest/test-results
906cd5251bSPhilippe Mathieu-Daudé    reports:
916cd5251bSPhilippe Mathieu-Daudé      junit: build/tests/results/latest/results.xml
926cd5251bSPhilippe Mathieu-Daudé  before_script:
936cd5251bSPhilippe Mathieu-Daudé    - mkdir -p ~/.config/avocado
946cd5251bSPhilippe Mathieu-Daudé    - echo "[datadir.paths]" > ~/.config/avocado/avocado.conf
956cd5251bSPhilippe Mathieu-Daudé    - echo "cache_dirs = ['${CI_PROJECT_DIR}/avocado-cache']"
966cd5251bSPhilippe Mathieu-Daudé           >> ~/.config/avocado/avocado.conf
976cd5251bSPhilippe Mathieu-Daudé    - echo -e '[job.output.testlogs]\nstatuses = ["FAIL", "INTERRUPT"]'
986cd5251bSPhilippe Mathieu-Daudé           >> ~/.config/avocado/avocado.conf
996cd5251bSPhilippe Mathieu-Daudé    - if [ -d ${CI_PROJECT_DIR}/avocado-cache ]; then
1006cd5251bSPhilippe Mathieu-Daudé        du -chs ${CI_PROJECT_DIR}/avocado-cache ;
1016cd5251bSPhilippe Mathieu-Daudé      fi
1026cd5251bSPhilippe Mathieu-Daudé    - export AVOCADO_ALLOW_UNTRUSTED_CODE=1
1036cd5251bSPhilippe Mathieu-Daudé  after_script:
1046cd5251bSPhilippe Mathieu-Daudé    - cd build
1056cd5251bSPhilippe Mathieu-Daudé    - du -chs ${CI_PROJECT_DIR}/avocado-cache
106e312d1fdSDaniel P. Berrangé  variables:
107e312d1fdSDaniel P. Berrangé    QEMU_JOB_AVOCADO: 1
108