summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavlo Solntsev <p.sun.fun@gmail.com>2020-12-04 20:51:49 -0600
committerPavlo Solntsev <p.sun.fun@gmail.com>2020-12-07 23:12:14 -0600
commit3478f1c36b80d0aeedce33255cee829623f20ed9 (patch)
tree45f6a8400e4ea91f0d3e8526d36a69b4383223e5
parent56fce8e172065b93719d20e86330522906ba8a0e (diff)
downloadglibmm-3478f1c36b80d0aeedce33255cee829623f20ed9.tar.gz
CI: Updating config file to reflect recent changes
CI configuration file is updated to support meson and autotools builds for glibmm. libsigc++ version is updated up to 3.0.6 and it will be built using meson only. See #84 for details
-rw-r--r--.gitlab-ci.yml84
1 files changed, 77 insertions, 7 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ff0ce819..3abec1e3 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -6,9 +6,11 @@ image: ubuntu:devel
stages:
- build
+ - deploy
variables:
DEPENDENCIES: g++
+ g++-9
gettext
git
yelp-tools
@@ -20,22 +22,90 @@ variables:
libglib2.0-dev
mm-common
libxml-libxml-perl
-
+ meson
+ ninja-build
+ glib-networking
+ GIO_EXTRA_MODULES: "/usr/lib/x86_64-linux-gnu/gio/modules"
GIT_SUBMODULE_STRATEGY: normal
before_script:
- export DEBIAN_FRONTEND=noninteractive
- apt update && apt -y upgrade && apt -y install $DEPENDENCIES
- - git clone --branch 3.0.0 https://github.com/libsigcplusplus/libsigcplusplus libsigc
+ - git clone --branch 3.0.6 https://github.com/libsigcplusplus/libsigcplusplus libsigc
- cd libsigc
- - ./autogen.sh --prefix=/usr
- - make
- - make install && cd ..
+ - mkdir _build && cd _build
+ - meson --prefix=/usr --libdir=lib -Dwarnings=fatal -Dbuildtype=release
+ - meson compile
+ - meson install
+ - cd ../..
-library_build:
+autotools_build:
stage: build
script:
- - ./autogen.sh --prefix=/usr
+ - ./autogen.sh --enable-warnings=fatal --prefix=/usr
- make
+ - make check
- make install
+ allow_failure: true
+
+debug_build:
+ stage: build
+ script:
+ - mkdir _build && cd _build
+# -Ddebug=true + -Doptimization=0 correspond to -Dbuildtype=debug
+ - meson --prefix=/usr --libdir=lib -Ddebug=true -Doptimization=0 -Dwarnings=fatal
+ - meson compile
+ - meson test
+ - meson install
+ artifacts:
+ when: on_failure
+ paths:
+ - _build/meson-logs/testlog.txt
+ - _build/meson-logs/meson-log.txt
+ expire_in: 1 week
+
+release_gcc_9_build:
+ stage: build
+ script:
+ - mkdir _build && cd _build
+# -Ddebug=false + -Doptimization=3 correspond to -Dbuildtype=release
+ - CC=gcc-9 CXX=g++-9 meson --prefix=/usr --libdir=lib -Ddebug=false -Doptimization=3 -Dwarnings=fatal
+ - meson compile
+ - meson test
+ - meson install
+ artifacts:
+ when: on_failure
+ paths:
+ - _build/meson-logs/testlog.txt
+ - _build/meson-logs/meson-log.txt
+ expire_in: 1 week
+
+release_gcc_10_build:
+ stage: build
+ script:
+ - mkdir _build && cd _build
+# -Ddebug=false + -Doptimization=3 correspond to -Dbuildtype=release
+ - CC=gcc-10 CXX=g++-10 meson --prefix=/usr --libdir=lib -Ddebug=false -Doptimization=3 -Dwarnings=fatal
+ - meson compile
+ - meson test
+ - meson install
+ allow_failure: true
+ artifacts:
+ when: on_failure
+ paths:
+ - _build/meson-logs/testlog.txt
+ - _build/meson-logs/meson-log.txt
+ expire_in: 1 week
+pages:
+ stage: deploy
+ script:
+ - CC=gcc-9 CXX=g++-9 meson _build --prefix=/usr --libdir=lib -Ddebug=false -Doptimization=3 -Dwarnings=fatal -Dmaintainer-mode=true
+ - cd _build
+ - ninja
+ - CC=gcc-9 CXX=g++-9 meson dist
+ - mkdir -p ../public/glibmm
+ - cp docs/reference/html/* ../public/glibmm
+ artifacts:
+ paths:
+ - public