| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- # This is the tag of the docker image used for the build jobs. If the
- # image doesn't exist yet, the containers-build stage generates it.
- #
- # In order to generate a new image, one should generally change the tag.
- # While removing the image from the registry would also work, that's not
- # recommended except for ephemeral images during development: Replacing
- # an image after a significant amount of time might pull in newer
- # versions of gcc/clang or other packages, which might break the build
- # with older commits using the same tag.
- #
- # After merging a change resulting in generating a new image to the
- # main repository, it's recommended to remove the image from the source
- # repository's container registry, so that the image from the main
- # repository's registry will be used there as well.
- #
- # The format of the tag is "%Y-%m-%d-${counter}" where ${counter} stays
- # at "01" unless you have multiple updates on the same day :)
- variables:
- UBUNTU_TAG: 2019-01-31-01
- UBUNTU_IMAGE: "$CI_REGISTRY/$CI_PROJECT_PATH/ubuntu:$UBUNTU_TAG"
-
-
- stages:
- - containers-build
- - build+test
-
-
- # CONTAINERS
-
- containers:ubuntu:
- stage: containers-build
- image: docker:stable
- services:
- - docker:dind
- variables:
- DOCKER_HOST: tcp://docker:2375
- DOCKER_DRIVER: overlay2
- script:
- # Enable experimental features such as `docker manifest inspect`
- - mkdir -p ~/.docker
- - "echo '{\"experimental\": \"enabled\"}' > ~/.docker/config.json"
- - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- # Check if the image (with the specific tag) already exists
- - docker manifest inspect $UBUNTU_IMAGE && exit || true
- - docker build -t $UBUNTU_IMAGE -f .gitlab-ci/Dockerfile.ubuntu .
- - docker push $UBUNTU_IMAGE
- only:
- changes:
- - .gitlab-ci.yml
- - .gitlab-ci/Dockerfile.ubuntu
-
-
- # BUILD
-
- .build:
- image: $UBUNTU_IMAGE
- stage: build+test
- artifacts:
- when: on_failure
- untracked: true
-
- .meson-build:
- extends: .build
- before_script:
- # We need to control the version of llvm-config we're using, so we'll
- # generate a native file to do so. This requires meson >=0.49
- - if test -n "$LLVM_VERSION"; then
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}";
- echo -e "[binaries]\nllvm-config = '`which $LLVM_CONFIG`'" > native.file;
- $LLVM_CONFIG --version;
- else
- touch native.file;
- fi
- - meson --version
- - meson _build
- --native-file=native.file
- -D build-tests=true
- -D libunwind=${UNWIND}
- ${DRI_LOADERS}
- -D dri-drivers=${DRI_DRIVERS:-[]}
- ${GALLIUM_ST}
- -D gallium-drivers=${GALLIUM_DRIVERS:-[]}
- -D vulkan-drivers=${VULKAN_DRIVERS:-[]}
- - cd _build
- - meson configure
- script:
- - ninja
- - ninja test
-
- .make-build:
- extends: .build
- variables:
- MAKEFLAGS: "-j4"
- before_script:
- - if test -n "$LLVM_VERSION"; then
- export LLVM_CONFIG="llvm-config-${LLVM_VERSION}";
- fi
- - mkdir build
- - cd build
- - ../autogen.sh
- --enable-autotools
- --enable-debug
- $LIBUNWIND_FLAGS
- $DRI_LOADERS
- --with-dri-drivers=$DRI_DRIVERS
- $GALLIUM_ST
- --with-gallium-drivers=$GALLIUM_DRIVERS
- --with-vulkan-drivers=$VULKAN_DRIVERS
- --disable-llvm-shared-libs
- script:
- - make
- - eval $MAKE_CHECK_COMMAND
-
- .scons-build:
- extends: .build
- variables:
- SCONSFLAGS: "-j4"
- script:
- - if test -n "$LLVM_VERSION"; then
- export LLVM_CONFIG="llvm-config-${LLVM_VERSION}";
- fi
- - scons $SCONS_TARGET
- - eval $SCONS_CHECK_COMMAND
-
- build:meson-vulkan:
- extends: .meson-build
- variables:
- UNWIND: "false"
- DRI_LOADERS: >
- -D glx=disabled
- -D gbm=false
- -D egl=false
- -D platforms=x11,wayland,drm
- -D osmesa=none
- GALLIUM_ST: >
- -D dri3=true
- -D gallium-vdpau=false
- -D gallium-xvmc=false
- -D gallium-omx=disabled
- -D gallium-va=false
- -D gallium-xa=false
- -D gallium-nine=false
- -D gallium-opencl=disabled
- VULKAN_DRIVERS: intel,amd
- LLVM_VERSION: "7"
-
- build:meson-loader-classic-dri:
- extends: .meson-build
- variables:
- UNWIND: "false"
- DRI_LOADERS: >
- -D glx=dri
- -D gbm=true
- -D egl=true
- -D platforms=x11,wayland,drm,surfaceless
- -D osmesa=classic
- DRI_DRIVERS: "i915,i965,r100,r200,swrast,nouveau"
- GALLIUM_ST: >
- -D dri3=true
- -D gallium-vdpau=false
- -D gallium-xvmc=false
- -D gallium-omx=disabled
- -D gallium-va=false
- -D gallium-xa=false
- -D gallium-nine=false
- -D gallium-opencl=disabled
-
- build:make-vulkan:
- extends: .make-build
- variables:
- MAKE_CHECK_COMMAND: "make -C src/gtest check && make -C src/intel check"
- LLVM_VERSION: "7"
- DRI_LOADERS: >
- --disable-glx
- --disable-gbm
- --disable-egl
- --with-platforms=x11,wayland,drm
- DRI_DRIVERS: ""
- GALLIUM_ST: >
- --enable-dri
- --enable-dri3
- --disable-opencl
- --disable-xa
- --disable-nine
- --disable-xvmc
- --disable-vdpau
- --disable-va
- --disable-omx-bellagio
- --disable-gallium-osmesa
- VULKAN_DRIVERS: intel,radeon
- LIBUNWIND_FLAGS: --disable-libunwind
-
- build:scons-nollvm:
- extends: .scons-build
- variables:
- SCONS_TARGET: "llvm=0"
- SCONS_CHECK_COMMAND: "scons llvm=0 check"
-
- build:scons-llvm:
- extends: .scons-build
- variables:
- SCONS_TARGET: "llvm=1"
- SCONS_CHECK_COMMAND: "scons llvm=1 check"
- LLVM_VERSION: "3.9"
-
- build:scons-swr:
- extends: .scons-build
- variables:
- SCONS_TARGET: "swr=1"
- SCONS_CHECK_COMMAND: "true"
- LLVM_VERSION: "6.0"
|