stages: - build - analysis - docs - deploy # Common variables variables: COMMON_MESON_FLAGS: "--fatal-meson-warnings --werror" MESON_TEST_TIMEOUT_MULTIPLIER: 2 FEDORA_IMAGE: registry.gitlab.gnome.org/gnome/pango/fedora:v4 linux-fedora: image: $FEDORA_IMAGE stage: build needs: [] variables: EXTRA_MESON_FLAGS: "--buildtype=debug --default-library=both" script: - meson ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS} _build - meson _build - ninja -C _build - .gitlab-ci/run-tests.sh _build artifacts: when: always reports: junit: - "${CI_PROJECT_DIR}/_build/report.xml" name: "gtk-${CI_COMMIT_REF_NAME}" paths: - "${CI_PROJECT_DIR}/_build/meson-logs" - "${CI_PROJECT_DIR}/_build/report.xml" - "${CI_PROJECT_DIR}/_build/hello.png" - "${CI_PROJECT_DIR}/_build/fontlist.txt" asan-build: image: $FEDORA_IMAGE tags: [ asan ] stage: analysis needs: [] variables: script: - CC=clang meson --buildtype=debugoptimized -Db_sanitize=address -Db_lundef=false -Dintrospection=disabled _build - ninja -C _build - .gitlab-ci/run-tests.sh _build allow_failure: true artifacts: when: always reports: junit: - "${CI_PROJECT_DIR}/_build/report.xml" name: "gtk-${CI_COMMIT_REF_NAME}" paths: - "${CI_PROJECT_DIR}/_build/meson-logs" - "${CI_PROJECT_DIR}/_build/report.xml" - "${CI_PROJECT_DIR}/_build/hello.png" - "${CI_PROJECT_DIR}/_build/fontlist.txt" msys2-mingw64: stage: build needs: [] tags: - win32-ps variables: MSYSTEM: "MINGW64" CHERE_INVOKING: "yes" script: - C:\msys64\usr\bin\pacman --noconfirm -Syyuu - C:\msys64\usr\bin\bash -lc "bash -x ./.gitlab-ci/test-msys2.sh" - C:\msys64\usr\bin\bash -lc "bash -x ./.gitlab-ci/render-msys2.sh" - C:\msys64\usr\bin\bash -lc "bash -x ./.gitlab-ci/list-msys2.sh" artifacts: name: "${env:CI_JOB_NAME}-${env:CI_COMMIT_REF_NAME}" when: always paths: - "${CI_PROJECT_DIR}/_build/meson-logs" - "${CI_PROJECT_DIR}/_build/hello.png" - "${CI_PROJECT_DIR}/_build/fontlist.txt" macos: stage: build tags: - macos only: - master - merge_requests needs: [] before_script: - pip3 install --user meson==0.56 - pip3 install --user ninja - export PATH=/Users/gitlabrunner/Library/Python/3.7/bin:$PATH script: - meson -Dintrospection=disabled -Dcpp_std=c++11 -Dpixman:tests=disabled -Dharfbuzz:coretext=enabled _build - ninja -C _build artifacts: when: always paths: - "${CI_PROJECT_DIR}/_build/meson-logs" reference: image: $FEDORA_IMAGE stage: docs needs: [] variables: EXTRA_MESON_FLAGS: "" script: - meson ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS} -Dgtk_doc=true _build - ninja -C _build pango-doc - mkdir -p _reference/ - mv _build/docs/html/ _reference/ artifacts: paths: - _reference pages: stage: deploy needs: ['reference'] script: - mv _reference/ public/ artifacts: paths: - public only: - master