summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Georg <mail@jensge.org>2021-11-21 12:17:11 +0100
committerJens Georg <mail@jensge.org>2021-11-21 12:17:29 +0100
commit5d8f7642ac232e936f7a97afa0f8ccfd61493641 (patch)
tree3e97e7f0a56f43d01dfee7013f21841b4fc44b6c
parentaf392f44631268a22b6b288ad79f80e3c8602afd (diff)
downloadgssdp-5d8f7642ac232e936f7a97afa0f8ccfd61493641.tar.gz
ci: Switch to flatpak temporarily
-rw-r--r--.gitlab-ci.yml420
-rw-r--r--build-aux/org.gnome.GUPnP.json59
2 files changed, 279 insertions, 200 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b0fad7e..591ab8e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,205 +1,225 @@
-include:
- - remote: "https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/290b79e0e78eab67a83766f4e9691be554fc4afd/templates/ci-fairy.yml"
- - remote: 'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/290b79e0e78eab67a83766f4e9691be554fc4afd/templates/fedora.yml'
-
-variables:
- MESON_TEST_TIMEOUT_MULTIPLIER: 3
-
-stages:
- - review
- - prepare
- - build
- - test
- - analysis
- - website
-
-.check-template: &check
- extends:
- - .fdo.ci-fairy
- artifacts:
- expire_in: 1 week
- paths:
- - check-junit-report.xml
- reports:
- junit: check-junit-report.xml
-
-check-commit-log:
- variables:
- GIT_DEPTH: "100"
- stage: review
- script:
- - if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ;
- then
- ci-fairy check-commits --junit-xml=check-junit-report.xml ;
- else
- echo "Not a merge request" ;
- fi
- <<: *check
-
-check-merge-request:
- variables:
- GIT_STRATEGY: none
- stage: review
- script:
- - if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ;
- then
- ci-fairy check-merge-request --require-allow-collaboration --junit-xml=check-junit-report.xml ;
- else
- echo "Not a merge request" ;
- fi
- <<: *check
-
-.build-template: &build
+flatpak:
+ tags:
+ - flatpak
+ image: registry.gitlab.gnome.org/gnome/gnome-runtime-images/gnome:master
stage: build
script:
- - meson . build --prefix=/usr -Db_coverage=true
- - ninja -C build
- artifacts:
- expire_in: 1 day
- paths:
- - build
-
-.gssdp.fedora@common:
- variables:
- BASE_TAG: '2021-06-19.0'
- FDO_UPSTREAM_REPO: GNOME/gssdp
- FDO_DISTRIBUTION_PACKAGES: 'clang clang-analyzer gcovr git libasan libubsan python3-gobject python3-pip xmlto gtk4-devel'
- FDO_DISTRIBUTION_EXEC: |
- dnf install -y 'dnf-command(builddep)' &&
- dnf builddep -y gssdp --setopt=install_weak_deps=False &&
- dnf clean all &&
- pip3 install meson markdown toml typogrify
-
-.gssdp.fedora:34@x86_64:
- extends: .gssdp.fedora@common
- variables:
- FDO_DISTRIBUTION_VERSION: 34
- FDO_DISTRIBUTION_TAG: "x86_64-${BASE_TAG}"
-
-build-fedora-container@x86_64:
- extends:
- - .fdo.container-build@fedora
- - .gssdp.fedora:34@x86_64
- stage: prepare
- variables:
- GIT_STRATEGY: none
-
-
-build-fedora@x86_64:
- extends:
- - .fdo.distribution-image@fedora
- - .gssdp.fedora:34@x86_64
- needs:
- - build-fedora-container@x86_64
- <<: *build
-
-
-.test-template: &test
- stage: test
- variables:
- G_SLICE: "always-malloc"
- MALLOC_CHECK_: "3"
- script:
- - cd build
- - |
- # Remove the many "CI_" variables from the environment. Meson dumps the
- # whole environment for every failed test, and that gives a whole
- # screenful of junk each time unless we strip these.
- unset $(env|grep -o '^CI_[^=]*')
- env LANG=C.UTF-8 LC_ALL=C.UTF-8 meson test --print-errorlogs ${MESON_TEST_EXTRA_ARGS}
- after_script:
- - |
- echo "Distribution: "
- echo
- egrep '^NAME=|^VERSION=' /etc/os-release
- echo
- echo "Test suite settings:"
- echo
- echo "G_MESSAGES_DEBUG: ${G_MESSAGES_DEBUG}"
- echo "MESON_TEST_EXTRA_ARGS: ${MESON_TEST_EXTRA_ARGS}"
- echo
- echo "These values can be set at https://gitlab.gnome.org/GNOME/gssdp/pipelines/new"
- artifacts:
- expire_in: 1 day
- when: always
- paths:
- - build
- reports:
- junit: "build/meson-logs/testlog.junit.xml"
-
-test-fedora@x86_64:
- extends:
- - .fdo.distribution-image@fedora
- - .gssdp.fedora:34@x86_64
- needs:
- - build-fedora@x86_64
- <<: *test
-
-trigger-gupnp:
- stage: analysis
- needs:
- - test-fedora@x86_64
- trigger: GNOME/gupnp
- only:
- - master
-
-coverage-analysis:
- extends:
- - .fdo.distribution-image@fedora
- - .gssdp.fedora:34@x86_64
- stage: analysis
- allow_failure: true
- script:
- - cd build
- - mkdir -p coveragereport
- - gcovr --html-details --print-summary --root=.. --exclude=../docs/reference --exclude=../tests --exclude=../tools --exclude=../examples --output coveragereport/index.html
- coverage: '/^lines: (\d+\.\d+\%)/'
+ - flatpak-builder build-dir build-aux/org.gnome.GUPnP.json --stop-at=gssdp --user --disable-rofiles-fuse
+ - flatpak build build-dir meson _build
+ - flatpak build build-dir ninja -C _build
+ - flatpak build build-dir meson test -C _build --gdb
artifacts:
- when: always
+ when: on_failure
+ name: "gssdp-_${CI_COMMIT_REF_NAME}"
paths:
- - build/coveragereport
- needs:
- - test-fedora@x86_64
-
-static-scan:
- extends:
- - .fdo.distribution-image@fedora
- - .gssdp.fedora:34@x86_64
- stage: analysis
- needs:
- - build-fedora-container@x86_64
- script:
- - meson --buildtype=debug _scan_build
- - export SCANBUILD="$PWD/.gitlab-ci/scanbuild-wrapper.sh"
- - ninja -C _scan_build scan-build
- artifacts:
- paths:
- - _scan_build/meson-logs
- after_script:
- - .gitlab-ci/scanbuild-plist-to-junit.py _scan_build/meson-logs/scanbuild/ > _scan_build/junit-scan-build.xml
- artifacts:
- reports:
- junit: "_scan_build/junit-scan-build.xml"
-
-pages:
- extends:
- - .fdo.distribution-image@fedora
- - .gssdp.fedora:34@x86_64
- stage: website
- script:
- - meson doc-build -Dgtk_doc=true
- - ninja -C doc-build doc/GSSDP
- - mkdir -p public
- - mv doc-build/doc/GSSDP public/docs
-
- artifacts:
- paths:
- - public
- needs:
- - build-fedora-container@x86_64
- only:
- - master
- - /^wip\/.*\/ci.*$/
- - /^wip\/.*\/.*doc.*$/
-
+ - "${CI_PROJECT_DIR}/_build/meson-logs"
+stages:
+ - build
+
+#include:
+# - remote: "https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/290b79e0e78eab67a83766f4e9691be554fc4afd/templates/ci-fairy.yml"
+# - remote: 'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/290b79e0e78eab67a83766f4e9691be554fc4afd/templates/fedora.yml'
+#
+#variables:
+# MESON_TEST_TIMEOUT_MULTIPLIER: 3
+#
+#stages:
+# - review
+# - prepare
+# - build
+# - test
+# - analysis
+# - website
+#
+#.check-template: &check
+# extends:
+# - .fdo.ci-fairy
+# artifacts:
+# expire_in: 1 week
+# paths:
+# - check-junit-report.xml
+# reports:
+# junit: check-junit-report.xml
+#
+#check-commit-log:
+# variables:
+# GIT_DEPTH: "100"
+# stage: review
+# script:
+# - if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ;
+# then
+# ci-fairy check-commits --junit-xml=check-junit-report.xml ;
+# else
+# echo "Not a merge request" ;
+# fi
+# <<: *check
+#
+#check-merge-request:
+# variables:
+# GIT_STRATEGY: none
+# stage: review
+# script:
+# - if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ;
+# then
+# ci-fairy check-merge-request --require-allow-collaboration --junit-xml=check-junit-report.xml ;
+# else
+# echo "Not a merge request" ;
+# fi
+# <<: *check
+#
+#.build-template: &build
+# stage: build
+# script:
+# - meson . build --prefix=/usr -Db_coverage=true
+# - ninja -C build
+# artifacts:
+# expire_in: 1 day
+# paths:
+# - build
+#
+#.gssdp.fedora@common:
+# variables:
+# BASE_TAG: '2021-06-19.0'
+# FDO_UPSTREAM_REPO: GNOME/gssdp
+# FDO_DISTRIBUTION_PACKAGES: 'clang clang-analyzer gcovr git libasan libubsan python3-gobject python3-pip xmlto gtk4-devel'
+# FDO_DISTRIBUTION_EXEC: |
+# dnf install -y 'dnf-command(builddep)' &&
+# dnf builddep -y gssdp --setopt=install_weak_deps=False &&
+# dnf clean all &&
+# pip3 install meson markdown toml typogrify
+#
+#.gssdp.fedora:34@x86_64:
+# extends: .gssdp.fedora@common
+# variables:
+# FDO_DISTRIBUTION_VERSION: 34
+# FDO_DISTRIBUTION_TAG: "x86_64-${BASE_TAG}"
+#
+#build-fedora-container@x86_64:
+# extends:
+# - .fdo.container-build@fedora
+# - .gssdp.fedora:34@x86_64
+# stage: prepare
+# variables:
+# GIT_STRATEGY: none
+#
+#
+#build-fedora@x86_64:
+# extends:
+# - .fdo.distribution-image@fedora
+# - .gssdp.fedora:34@x86_64
+# needs:
+# - build-fedora-container@x86_64
+# <<: *build
+#
+#
+#.test-template: &test
+# stage: test
+# variables:
+# G_SLICE: "always-malloc"
+# MALLOC_CHECK_: "3"
+# script:
+# - cd build
+# - |
+# # Remove the many "CI_" variables from the environment. Meson dumps the
+# # whole environment for every failed test, and that gives a whole
+# # screenful of junk each time unless we strip these.
+# unset $(env|grep -o '^CI_[^=]*')
+# env LANG=C.UTF-8 LC_ALL=C.UTF-8 meson test --print-errorlogs ${MESON_TEST_EXTRA_ARGS}
+# after_script:
+# - |
+# echo "Distribution: "
+# echo
+# egrep '^NAME=|^VERSION=' /etc/os-release
+# echo
+# echo "Test suite settings:"
+# echo
+# echo "G_MESSAGES_DEBUG: ${G_MESSAGES_DEBUG}"
+# echo "MESON_TEST_EXTRA_ARGS: ${MESON_TEST_EXTRA_ARGS}"
+# echo
+# echo "These values can be set at https://gitlab.gnome.org/GNOME/gssdp/pipelines/new"
+# artifacts:
+# expire_in: 1 day
+# when: always
+# paths:
+# - build
+# reports:
+# junit: "build/meson-logs/testlog.junit.xml"
+#
+#test-fedora@x86_64:
+# extends:
+# - .fdo.distribution-image@fedora
+# - .gssdp.fedora:34@x86_64
+# needs:
+# - build-fedora@x86_64
+# <<: *test
+#
+#trigger-gupnp:
+# stage: analysis
+# needs:
+# - test-fedora@x86_64
+# trigger: GNOME/gupnp
+# only:
+# - master
+#
+#coverage-analysis:
+# extends:
+# - .fdo.distribution-image@fedora
+# - .gssdp.fedora:34@x86_64
+# stage: analysis
+# allow_failure: true
+# script:
+# - cd build
+# - mkdir -p coveragereport
+# - gcovr --html-details --print-summary --root=.. --exclude=../docs/reference --exclude=../tests --exclude=../tools --exclude=../examples --output coveragereport/index.html
+# coverage: '/^lines: (\d+\.\d+\%)/'
+# artifacts:
+# when: always
+# paths:
+# - build/coveragereport
+# needs:
+# - test-fedora@x86_64
+#
+#static-scan:
+# extends:
+# - .fdo.distribution-image@fedora
+# - .gssdp.fedora:34@x86_64
+# stage: analysis
+# needs:
+# - build-fedora-container@x86_64
+# script:
+# - meson --buildtype=debug _scan_build
+# - export SCANBUILD="$PWD/.gitlab-ci/scanbuild-wrapper.sh"
+# - ninja -C _scan_build scan-build
+# artifacts:
+# paths:
+# - _scan_build/meson-logs
+# after_script:
+# - .gitlab-ci/scanbuild-plist-to-junit.py _scan_build/meson-logs/scanbuild/ > _scan_build/junit-scan-build.xml
+# artifacts:
+# reports:
+# junit: "_scan_build/junit-scan-build.xml"
+#
+#pages:
+# extends:
+# - .fdo.distribution-image@fedora
+# - .gssdp.fedora:34@x86_64
+# stage: website
+# script:
+# - meson doc-build -Dgtk_doc=true
+# - ninja -C doc-build doc/GSSDP
+# - mkdir -p public
+# - mv doc-build/doc/GSSDP public/docs
+#
+# artifacts:
+# paths:
+# - public
+# needs:
+# - build-fedora-container@x86_64
+# only:
+# - master
+# - /^wip\/.*\/ci.*$/
+# - /^wip\/.*\/.*doc.*$/
+#
+#
+#
diff --git a/build-aux/org.gnome.GUPnP.json b/build-aux/org.gnome.GUPnP.json
new file mode 100644
index 0000000..b7967d3
--- /dev/null
+++ b/build-aux/org.gnome.GUPnP.json
@@ -0,0 +1,59 @@
+{
+ "app-id" : "org.gnome.GUPnP",
+ "runtime" : "org.gnome.Platform",
+ "runtime-version" : "master",
+ "sdk" : "org.gnome.Sdk",
+ "command" : "light-server",
+ "finish-args" : [
+ "--share=network",
+ "--share=ipc",
+ "--talk-name=org.gtk.vfs",
+ "--talk-name=org.gtk.vfs.*",
+ "--filesystem=xdg-pictures",
+ "--filesystem=xdg-videos",
+ "--filesystem=xdg-music",
+ "--own-name=org.gnome.Rygel1"
+ ],
+ "build-options" : {
+ "cflags" : "-O2 -g",
+ "cxxflags" : "-O2 -g",
+ "env" : {
+ "V" : "1"
+ }
+ },
+ "cleanup" : [
+ "/include",
+ "/lib/pkgconfig",
+ "/man",
+ "/share/doc",
+ "/share/gtk-doc",
+ "/share/man",
+ "/share/pkgconfig",
+ "*.la",
+ "*.a"
+ ],
+ "modules" : [
+ {
+ "name" : "gssdp",
+ "buildsystem" : "meson",
+ "sources" : [
+ {
+ "type" : "git",
+ "url" : "https://gitlab.gnome.org/GNOME/gssdp.git/",
+ "branch" : "wip/libsoup3"
+ }
+ ]
+ },
+ {
+ "name" : "gupnp",
+ "buildsystem" : "meson",
+ "sources" : [
+ {
+ "type" : "git",
+ "url" : "https://gitlab.gnome.org/GNOME/gupnp.git/",
+ "branch" : "wip/phako/libsoup3"
+ }
+ ]
+ }
+ ]
+}