stages: - build variables: MESON_ARGS: --werror --fatal-meson-warnings debian sid: image: 'debian:sid' stage: build variables: DEPENDENCIES: > meson ninja-build build-essential before_script: - apt-get update - apt-get install --yes ${DEPENDENCIES} script: - meson setup $MESON_ARGS build/ - meson compile --verbose -C build/ - meson test -C build/ - meson test -C build/ --benchmark - meson install -C build/ artifacts: paths: - build/meson-logs/ .build windows: image: 'registry.freedesktop.org/gstreamer/gst-ci/amd64/windows:v11-master' stage: 'build' tags: - 'docker' - 'windows' - '1809' - 'gstreamer-windows' variables: # Make sure any failure in PowerShell scripts is fatal ErrorActionPreference: 'Stop' WarningPreference: 'Stop' # Uncomment the following key if need to pass custom args, as well with the # $env:MESON_ARGS line in the `script:` blocks # MESON_ARGS: >- # -Dfoo=enabled # -Dbar=disabled before_script: # Make sure meson is up to date, so we don't need to rebuild the image with each release - pip3 install -U meson ninja script: # For some reason, options are separated by newline instead of space, so we # have to replace them first. #- $env:MESON_ARGS = $env:MESON_ARGS.replace("`n"," ") # Gitlab executes PowerShell in docker, but VsDevCmd.bat is a batch script. # Environment variables substitutions is done by PowerShell before calling # cmd.exe, that's why we use $env:FOO instead of %FOO% - cmd.exe /C "C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=$env:ARCH && meson setup build $env:MESON_ARGS && meson compile --verbose -C build && meson test -C build && meson test -C build --benchmark" vs2017 amd64: extends: '.build windows' variables: ARCH: 'amd64' vs2017 x86: extends: '.build windows' variables: ARCH: 'x86' msys2: extends: '.build windows' when: 'manual' allow_failure: true script: # XXX: Copied from https://gitlab.freedesktop.org/gstreamer/gst-ci/blob/master/gitlab/ci_template.yml#L487 - $env:PATH += ";C:\msys64\usr\bin;C:\msys64\mingw64\bin;C:\msys64\mingw32\bin" - C:\msys64\usr\bin\bash -c "pacman-key --init && pacman-key --populate msys2 && pacman-key --refresh-keys || true" - C:\msys64\usr\bin\bash -c "sed -i 's/^CheckSpace/#CheckSpace/g' /etc/pacman.conf" - echo "Updating MSYS2" - C:\msys64\usr\bin\bash -c "pacman -Syuu --noconfirm || echo Update failed, ignoring" - echo "Killing all MSYS2 processes" - taskkill /F /FI "MODULES eq msys-2.0.dll" - echo "Completing MSYS2 update" - C:\msys64\usr\bin\bash -c "pacman -Suu --noconfirm" - echo "Installing needed MSYS2 packages" - C:\msys64\usr\bin\bash -c "pacman -Sy --noconfirm --needed mingw-w64-x86_64-toolchain ninja" - C:\msys64\usr\bin\bash -c "meson setup build $env:MESON_ARGS && meson compile --verbose -C build && meson test -C build && meson test -C build --benchmark" macos x86_64: stage: 'build' tags: - gst-macos-10.15 artifacts: name: "${CI_JOB_NAME}_${CI_COMMIT_SHA}" expire_in: '5 days' when: 'always' paths: - "build/meson-logs/*txt" before_script: - pip3 install --upgrade pip # Make sure meson is up to date - pip3 install -U meson # Need to install certificates for python - pip3 install --upgrade certifi # Anther way to install certificates - open /Applications/Python\ 3.8/Install\ Certificates.command # Get ninja - pip3 install -U ninja script: - CERT_PATH=$(python3 -m certifi) && export SSL_CERT_FILE=${CERT_PATH} && export REQUESTS_CA_BUNDLE=${CERT_PATH} - meson setup --werror build - meson compile --verbose -C build - meson test -C build - meson test -C build --benchmark ios arm64: stage: 'build' tags: - gst-ios-13.2 artifacts: name: "${CI_JOB_NAME}_${CI_COMMIT_SHA}" expire_in: '5 days' when: 'always' paths: - "build/meson-logs/*txt" before_script: - pip3 install --upgrade pip # Make sure meson and meson are up to date - pip3 install -U meson ninja # Need to install certificates for python - pip3 install --upgrade certifi # Anther way to install certificates - open /Applications/Python\ 3.8/Install\ Certificates.command script: - CERT_PATH=$(python3 -m certifi) && export SSL_CERT_FILE=${CERT_PATH} && export REQUESTS_CA_BUNDLE=${CERT_PATH} - | cat > ios-cross-file.txt < android-cross-file.txt <