Following the idea to distribute in a tree of files to include and split between the files with or without hidden job definitions, some jobs in the root file can be moved to files made specific to describe build or test jobs. Signed-off-by: Sergi Blanch-Torne <sergi.blanch.torne@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35427>
97 lines
2.7 KiB
YAML
97 lines
2.7 KiB
YAML
.meson-build-for-tests:
|
|
extends:
|
|
- .build-linux
|
|
stage: build-for-tests
|
|
script:
|
|
- &meson-build timeout --verbose ${BUILD_JOB_TIMEOUT_OVERRIDE:-$BUILD_JOB_TIMEOUT} bash --login .gitlab-ci/meson/build.sh
|
|
- .gitlab-ci/prepare-artifacts.sh
|
|
|
|
.meson-build-only:
|
|
extends:
|
|
- .meson-build-for-tests
|
|
- .build-only-delayed-rules
|
|
stage: build-only
|
|
script:
|
|
- *meson-build
|
|
|
|
# Shared between windows and Linux
|
|
.build-common:
|
|
extends: .build-rules
|
|
# Cancel job if a newer commit is pushed to the same branch
|
|
interruptible: true
|
|
variables:
|
|
# Build jobs are typically taking between 5-12 minutes, depending on how
|
|
# much they build and how many new Rust compilers we have to build twice.
|
|
# Allow 25 minutes as a reasonable margin: beyond this point, something
|
|
# has gone badly wrong, and we should try again to see if we can get
|
|
# something from it.
|
|
#
|
|
# Some jobs not in the critical path use a higher timeout, particularly
|
|
# when building with ASan or UBSan.
|
|
BUILD_JOB_TIMEOUT: 12m
|
|
RUN_MESON_TESTS: "true"
|
|
timeout: 16m
|
|
# We don't want to download any previous job's artifacts
|
|
dependencies: []
|
|
artifacts:
|
|
name: "${CI_PROJECT_NAME}_${CI_JOB_NAME_SLUG}"
|
|
when: always
|
|
paths:
|
|
- _build/meson-logs/*.txt
|
|
- _build/meson-logs/strace
|
|
- _build/.ninja_log
|
|
- artifacts
|
|
|
|
.build-run-long:
|
|
variables:
|
|
BUILD_JOB_TIMEOUT: 18m
|
|
timeout: 25m
|
|
|
|
|
|
# Just Linux
|
|
.build-linux:
|
|
extends: .build-common
|
|
variables:
|
|
C_ARGS: >
|
|
-Wno-error=deprecated-declarations
|
|
CCACHE_COMPILERCHECK: "content"
|
|
CCACHE_COMPRESS: "true"
|
|
CCACHE_DIR: /cache/mesa/ccache
|
|
# Use ccache transparently, and print stats before/after
|
|
before_script:
|
|
- !reference [default, before_script]
|
|
- |
|
|
export PATH="/usr/lib/ccache:$PATH"
|
|
export CCACHE_BASEDIR="$PWD"
|
|
if test -x /usr/bin/ccache; then
|
|
section_start ccache_before "ccache stats before build"
|
|
ccache --show-stats
|
|
section_end ccache_before
|
|
fi
|
|
after_script:
|
|
- if test -x /usr/bin/ccache; then ccache --show-stats | grep "Hits:"; fi
|
|
- !reference [default, after_script]
|
|
|
|
.build-windows:
|
|
extends:
|
|
- .build-common
|
|
- .windows-docker-tags
|
|
cache:
|
|
key: ${CI_JOB_NAME}
|
|
paths:
|
|
- subprojects/packagecache
|
|
|
|
.ci-deqp-artifacts:
|
|
artifacts:
|
|
name: "${CI_PROJECT_NAME}_${CI_JOB_NAME_SLUG}"
|
|
when: always
|
|
untracked: false
|
|
paths:
|
|
# Watch out! Artifacts are relative to the build dir.
|
|
# https://gitlab.com/gitlab-org/gitlab-ce/commit/8788fb925706cad594adf6917a6c5f6587dd1521
|
|
- artifacts
|
|
- _build/meson-logs/*.txt
|
|
- _build/meson-logs/strace
|
|
- _build/.ninja_log
|
|
|