summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
diff options
context:
space:
mode:
authorFrediano Ziglio <fziglio@redhat.com>2020-03-12 19:10:06 +0000
committerFrediano Ziglio <fziglio@redhat.com>2020-03-17 16:01:19 +0000
commitc6a0844422d967d91c43d9cbd833e493883d71de (patch)
treedb63a8cfefb9abc87ce233724e9741c92080db74 /.gitlab-ci.yml
parentb196e9e78ddfe28f8413f96aa448ff2b77dce6a0 (diff)
ci: Fix build of spice-protocol
spice-protocol is not using Autoconf anymore. Autobahn suite is now run on normal Fedora docker image. Drop testing with CentOS 7 i386 in favour of a Debian i386, CentOS 7 does not support i386 anymore, EPEL 7 is missing for CentOS 7 i386 so to check a 32 machine better to move to Debian. Signed-off-by: Frediano Ziglio <fziglio@redhat.com> Acked-by: Victor Toso <victortoso@redhat.com>
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r--.gitlab-ci.yml69
1 files changed, 39 insertions, 30 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index fd110c78..827a3545 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -11,7 +11,9 @@ before_script:
dconf
-y
- git clone ${CI_REPOSITORY_URL/spice.git/spice-protocol.git}
- - (cd spice-protocol && ./autogen.sh --prefix=/usr && make install)
+ - meson --buildtype=release spice-protocol build-spice-protocol --prefix=/usr --werror
+ - ninja -C build-spice-protocol install
+ - rm -rf build-spice-protocol
# This is a workaround for Fedora docker image, this will add some
# missing configuration
# '/org/gnome/system/location/enabled' is just the first key path
@@ -94,9 +96,11 @@ makecheck-centos:
libcacard-devel cyrus-sasl-devel lz4-devel
gstreamer1-devel gstreamer1-plugins-base-devel
git-core python3-pyparsing python3-six python3
+ meson
-y
- git clone ${CI_REPOSITORY_URL/spice.git/spice-protocol.git}
- - (cd spice-protocol && ./autogen.sh --prefix=/usr && make install)
+ - meson --buildtype=release spice-protocol build-spice-protocol --prefix=/usr --werror
+ - ninja -C build-spice-protocol install
image: centos:latest
script:
- >
@@ -106,27 +110,32 @@ makecheck-centos:
- make
- make -C server check || (cat server/tests/test-suite.log && exit 1)
-# Same as makecheck job but use a Centos image
-makecheck-centos32:
+# Same as meson-makecheck job but use a Debian i386 image,
+# this in order to test a 32 bit machine
+makecheck-debian32:
before_script:
+ - apt-get update -y
- >
- yum install git libtool make libasan orc-devel glib-networking
- yum-utils gcc glib2-devel celt051-devel
- opus-devel pixman-devel openssl-devel libjpeg-devel
- libcacard-devel cyrus-sasl-devel lz4-devel
- gstreamer1-devel gstreamer1-plugins-base-devel
- git-core pyparsing python-six
- -y
+ apt-get install -y
+ debhelper
+ gstreamer1.0-libav gstreamer1.0-plugins-base gstreamer1.0-plugins-good
+ gstreamer1.0-plugins-ugly gstreamer1.0-tools
+ libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
+ libcacard-dev libglib2.0-dev
+ libjpeg-dev liblz4-dev libopus-dev libpixman-1-dev libsasl2-dev
+ libspice-protocol-dev libssl-dev pkg-config
+ python3-six python3-pyparsing liborc-0.4-dev meson git
- git clone ${CI_REPOSITORY_URL/spice.git/spice-protocol.git}
- - (cd spice-protocol && ./autogen.sh --prefix=/usr && make install)
- image: i386/centos:latest
+ - meson --buildtype=release spice-protocol build-spice-protocol --prefix=/usr --werror
+ - ninja -C build-spice-protocol install
+ image: i386/debian:latest
script:
- >
CFLAGS='-O2 -pipe -g -fsanitize=address -fno-omit-frame-pointer -Wframe-larger-than=40920'
LDFLAGS='-fsanitize=address -lasan'
- ./autogen.sh --enable-celt051
- - make
- - make -C server check || (cat server/tests/test-suite.log && exit 1)
+ meson --buildtype=release build || (cat build/meson-logs/meson-log.txt && exit 1)
+ - ninja -C build
+ - (cd build && meson test) || (cat build/meson-logs/testlog.txt && exit 1)
# Same as makecheck job but use Windows build
makecheck-windows:
@@ -137,31 +146,31 @@ makecheck-windows:
mingw64-openssl mingw64-glib2 mingw64-glib-networking mingw64-libjpeg-turbo
mingw64-pixman mingw64-opus mingw64-winpthreads mingw64-zlib
mingw64-gstreamer1-plugins-base mingw64-gstreamer1-plugins-good mingw64-orc
- - cd spice-protocol
- - mingw64-configure
- - mingw64-make install
- - cd ..
+ meson
+ - mkdir spice-protocol/build
+ - (cd spice-protocol/build && mingw64-meson --werror)
+ - ninja -C spice-protocol/build install
- NOCONFIGURE=yes ./autogen.sh
- mingw64-configure --disable-celt051
- mingw64-make
- mingw64-make LOG_COMPILE=wine -C server check || (cat server/tests/test-suite.log && exit 1)
websocket-autobahn:
- before_script:
- - apt-get update || true
- - apt-get install -y python-six python-pyparsing libopus-dev libssl-dev libglib2.0-dev
- - git clone ${CI_REPOSITORY_URL/spice.git/spice-protocol.git}
- - (cd spice-protocol && ./autogen.sh --prefix=/usr && make install)
- image: crossbario/autobahn-testsuite
script:
- - ./autogen.sh
- - make -j4
- - ./server/tests/test-websocket & pid=$!
+ - >
+ dnf install python2 python2-pip python2-devel python-unversioned-command
+ -y
+ - pip2 install autobahntestsuite
+ - wstest -a
+ - >
+ meson --buildtype=release build -Dcelt051=enabled || (cat build/meson-logs/meson-log.txt && exit 1)
+ - ninja -C build
+ - build/server/tests/test-websocket & pid=$!
- wstest -m fuzzingclient -s server/tests/fuzzingclient.json
- kill $pid
- server/tests/autobahn-check-report reports/servers/index.json
- rm -rf reports/servers
- - ./server/tests/test-websocket -n & pid=$!
+ - build/server/tests/test-websocket -n & pid=$!
- wstest -m fuzzingclient -s server/tests/fuzzingclient.json
- kill $pid
- server/tests/autobahn-check-report reports/servers/index.json