mirror of
https://gitlab.freedesktop.org/emersion/libdisplay-info.git
synced 2024-12-25 21:59:08 +01:00
83ae3f5515
Merge the stage into "Build and test". The next stages don't depend on this stage, so we can parallelize, no need to block the next stages because of the testing-check step. Signed-off-by: Simon Ser <contact@emersion.fr>
133 lines
3.6 KiB
YAML
133 lines
3.6 KiB
YAML
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: '2023-01-31.0'
|
|
|
|
stages:
|
|
- "Contribution checks"
|
|
- "Prepare container"
|
|
- "Build and test"
|
|
- "Publish"
|
|
|
|
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_BASE_IMAGE: alpine:3.17
|
|
FDO_DISTRIBUTION_PACKAGES: |
|
|
build-base clang compiler-rt meson make git gcovr py3-pygments go hwdata
|
|
FDO_DISTRIBUTION_EXEC: |
|
|
git clone git://linuxtv.org/edid-decode.git
|
|
cd edid-decode
|
|
git checkout 915b0ce5329f417d2c3f84ddab3d443dd0e01b61
|
|
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
|
|
|
|
testing-check:
|
|
extends: .fdo.distribution-image@alpine
|
|
stage: "Build and test"
|
|
script:
|
|
- |
|
|
# Check if the origin of all test EDIDs is documented
|
|
for f in ./test/data/*.edid; do
|
|
grep -q "^$(basename ${f%.edid})\s" ./test/data/README.md ||
|
|
(echo "$f not in README.md" && exit 1)
|
|
done
|
|
# Check if the test references checked in the repo match what we have in CI
|
|
meson setup build/
|
|
ninja -C build/ gen-test-data
|
|
git diff --quiet ||
|
|
(echo "Checked in reference output does not match generated reference output" && exit 1)
|
|
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
|
|
|
|
build-docs:
|
|
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:
|
|
- when: on_success
|
|
|
|
pages:
|
|
extends: .fdo.distribution-image@alpine
|
|
stage: "Publish"
|
|
script:
|
|
- "true"
|
|
artifacts:
|
|
paths:
|
|
- public/
|
|
rules:
|
|
- if: '$CI_PROJECT_PATH == "emersion/libdisplay-info" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
|
|
when: on_success
|
|
- when: never
|