include: - project: 'freedesktop/ci-templates' ref: 3f37cc0e461f5b0c815409bf6f55759f26a74e9c file: - '/templates/ci-fairy.yml' - '/templates/alpine.yml' # When updating the prepare-container step, make sure to bump # FDO_DISTRIBUTION_TAG, otherwise the container won't get rebuilt. # To force a rebuild of the container, use: # $ git push -f -o ci.variable="FDO_FORCE_REBUILD=1" variables: FDO_UPSTREAM_REPO: 'emersion/libdisplay-info' FDO_DISTRIBUTION_TAG: '2022-09-28.0' stages: - "Contribution checks" - "Prepare container" - "Build and test" check-mr: extends: .fdo.ci-fairy stage: "Contribution checks" script: - ci-fairy check-commits --signed-off-by - ci-fairy check-merge-request --require-allow-collaboration rules: - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main"' when: always - when: never prepare-container: extends: .fdo.container-build@alpine@x86_64 stage: "Prepare container" variables: FDO_DISTRIBUTION_PACKAGES: | build-base clang compiler-rt meson make git gcovr py3-pygments go FDO_DISTRIBUTION_EXEC: | git clone git://linuxtv.org/edid-decode.git cd edid-decode git checkout 6816e6a691f40e6fbb64e6d40f012d7727c6315f make make install cd .. rm -rf edid-decode go install git.sr.ht/~emersion/gyosu@latest mv ~/go/bin/gyosu /usr/bin/ rm -rf ~/go rules: - when: on_success build-gcc: extends: .fdo.distribution-image@alpine stage: "Build and test" script: - CC=gcc meson setup build/ --fatal-meson-warnings -Dwerror=true -Db_coverage=true - ninja -C build/ - ninja -C build/ test - ninja -C build/ -j1 coverage-xml coverage-html artifacts: when: always paths: - build/meson-logs/ reports: junit: build/meson-logs/testlog.junit.xml coverage_report: coverage_format: cobertura path: build/meson-logs/coverage.xml rules: - when: on_success build-clang: extends: .fdo.distribution-image@alpine stage: "Build and test" script: - CC=clang meson setup build/ --fatal-meson-warnings -Dwerror=true -Db_sanitize=address,undefined -Db_lundef=false - ninja -C build/ - ninja -C build/ test artifacts: when: always paths: - build/meson-logs/ reports: junit: build/meson-logs/testlog.junit.xml rules: - when: on_success pages: extends: .fdo.distribution-image@alpine stage: "Build and test" script: - gyosu -I$PWD/include/ -fexported-symbols='di_*' -ffile-prefix-map=$PWD/include/= -fsite-name=libdisplay-info -o public $PWD/include/libdisplay-info/ artifacts: paths: - public/ rules: - if: '$CI_PROJECT_PATH == "emersion/libdisplay-info" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' when: on_success - when: never