[Spice-commits] 5 commits - .gitlab-ci.yml

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Feb 14 10:59:18 UTC 2019


 .gitlab-ci.yml |  138 ++++++++++++++++++++++++++++++++++++++-------------------
 1 file changed, 92 insertions(+), 46 deletions(-)

New commits:
commit 0a52e36a501d4f1237b069540a6c948eab3fdb52
Author: Victor Toso <me at victortoso.com>
Date:   Thu Feb 7 16:56:51 2019 +0000

    gitlab-ci: add mingw meson build
    
    To keep track of meson builds for windows too.
    Note that mingw64-meson requires to be ran inside the folder,
    different from common meson. So, some extra steps were done due that.
    
    v1 -> v2:
    - Remove initial '_' from build folder filenames (Frediano);
    - Always use '-' instead of '_' in build folder filenames (Frediano);
    
    Signed-off-by: Victor Toso <victortoso at redhat.com>
    Acked-by: Frediano Ziglio <fziglio at redhat.com>

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index e42b87f..8ffc654 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -79,3 +79,24 @@ windows-autotools:
     - NOCONFIGURE=yes ./autogen.sh
     - PYTHON=python3 mingw64-configure --enable-static
     - make -j4
+
+windows-meson:
+  artifacts:
+    paths:
+      - build-win64/meson-logs/*.txt
+      - spice-protocol/build-spice-protocol/meson-logs/*.txt
+    when: always
+    expire_in: 1 week
+
+  before_script:
+    - dnf install -y $DEPS_COMMON $DEPS_MINGW
+    - git clone ${CI_REPOSITORY_URL/spice-gtk/spice-protocol}
+    - mkdir spice-protocol/build-spice-protocol && cd spice-protocol/build-spice-protocol
+    - mingw64-meson --prefix=/usr
+    - ninja install
+
+  script:
+    - cd $CI_PROJECT_DIR
+    - mkdir build-win64 && cd build-win64
+    - mingw64-meson -Dgtk_doc=disabled
+    - ninja install
commit 96b2805310f12fd6b3b300aa786c1fea9865091a
Author: Victor Toso <me at victortoso.com>
Date:   Thu Feb 7 10:27:50 2019 +0000

    gitlab-ci: add artifacts for logs and tests
    
    Much better than playing around with shell. Logs should live for week
    since the build and CI will try to always upload them.
    
    This patch also adds the logs for tests from builds with autotools
    
    Signed-off-by: Victor Toso <victortoso at redhat.com>
    Acked-by: Frediano Ziglio <fziglio at redhat.com>

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 82af077..e42b87f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -18,6 +18,12 @@ variables:
               mingw64-gstreamer1-plugins-base mingw64-gstreamer1-plugins-good
 
 fedora-autotools:
+  artifacts:
+    paths:
+      - tests/*.log
+    when: always
+    expire_in: 1 week
+
   before_script:
     - dnf install -y $DEPS_COMMON $DEPS_FEDORA
     - git clone ${CI_REPOSITORY_URL/spice-gtk/spice-protocol}
@@ -42,6 +48,12 @@ fedora-autotools:
     - make check
 
 fedora-meson:
+  artifacts:
+    paths:
+      - build-*/meson-logs/*.txt
+    when: always
+    expire_in: 1 week
+
   before_script:
     - dnf install -y $DEPS_COMMON $DEPS_FEDORA
     - git clone ${CI_REPOSITORY_URL/spice-gtk/spice-protocol}
@@ -49,13 +61,13 @@ fedora-meson:
     - ninja -C build-spice-protocol install
 
   script:
-    - meson build-default || (cat build-default/meson-logs/meson-log.txt && exit 1)
+    - meson build-default
     - ninja -C build-default
-    - ninja -C build-default test || (cat build-default/meson-logs/testlog.txt && exit 1)
+    - ninja -C build-default test
 
-    - meson build-feat-disabled -Dauto_features=disabled || (cat build-feat-disabled/meson-logs/meson-log.txt && exit 1)
+    - meson build-feat-disabled -Dauto_features=disabled
     - ninja -C build-feat-disabled
-    - ninja -C build-feat-disabled test || (cat build-feat-disabled/meson-logs/testlog.txt && exit 1)
+    - ninja -C build-feat-disabled test
 
 windows-autotools:
   before_script:
commit f3367b4a5ecfe92a04d8a9624a5f83ec5e6247c5
Author: Victor Toso <me at victortoso.com>
Date:   Thu Feb 7 10:04:31 2019 +0000

    gitlab-ci: create before_script per job
    
    * On a windows job-build, we don't need to install Fedora dependencies.
      This change makes only one dnf install be ran per job.
    
    * On a meson build, we should build spice-protocol with meson too.
    
    Moving this before_script rule to each job makes all of this clear.
    
    So, this patch does change for fedora-meson, the build of
    spice-protocol with meson and we don't (explicitly) install any of
    $DEPS_FEDORA
    
    v1 -> v2:
    - Remove initial '_' from build folder filenames (Frediano);
    - Always use '-' instead of '_' in build folder filenames (Frediano);
    
    Signed-off-by: Victor Toso <victortoso at redhat.com>
    Acked-by: Frediano Ziglio <fziglio at redhat.com>

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 2167fe6..82af077 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -17,12 +17,12 @@ variables:
               mingw64-gtk3 mingw64-json-glib mingw64-opus
               mingw64-gstreamer1-plugins-base mingw64-gstreamer1-plugins-good
 
-before_script:
-  - dnf install -y $DEPS_COMMON $DEPS_FEDORA
-  - git clone ${CI_REPOSITORY_URL/spice-gtk/spice-protocol}
-  - (cd spice-protocol && ./autogen.sh --prefix=/usr && make install)
-
 fedora-autotools:
+  before_script:
+    - dnf install -y $DEPS_COMMON $DEPS_FEDORA
+    - git clone ${CI_REPOSITORY_URL/spice-gtk/spice-protocol}
+    - (cd spice-protocol && ./autogen.sh --prefix=/usr && make install)
+
   script:
     # Run with default options
     - ./autogen.sh --enable-static
@@ -42,6 +42,12 @@ fedora-autotools:
     - make check
 
 fedora-meson:
+  before_script:
+    - dnf install -y $DEPS_COMMON $DEPS_FEDORA
+    - git clone ${CI_REPOSITORY_URL/spice-gtk/spice-protocol}
+    - meson spice-protocol build-spice-protocol --prefix=/usr
+    - ninja -C build-spice-protocol install
+
   script:
     - meson build-default || (cat build-default/meson-logs/meson-log.txt && exit 1)
     - ninja -C build-default
@@ -52,9 +58,12 @@ fedora-meson:
     - ninja -C build-feat-disabled test || (cat build-feat-disabled/meson-logs/testlog.txt && exit 1)
 
 windows-autotools:
-  script:
+  before_script:
     - dnf install -y $DEPS_COMMON $DEPS_MINGW
-    - (cd spice-protocol && make clean && mingw64-configure --prefix=/usr && make install)
+    - git clone ${CI_REPOSITORY_URL/spice-gtk/spice-protocol}
+    - (cd spice-protocol && autoreconf -if && mingw64-configure --prefix=/usr && make install)
+
+  script:
     - NOCONFIGURE=yes ./autogen.sh
     - PYTHON=python3 mingw64-configure --enable-static
     - make -j4
commit 6a0e31a71963f8186d6deb646c8c6e3954a37b6f
Author: Victor Toso <me at victortoso.com>
Date:   Thu Feb 7 10:02:37 2019 +0000

    gitlab-ci: move windows dependencies to a variable
    
    To keep all dependencies together. Some (small) effort was made to
    distinguish what is necessary for Fedora and what is necessary for
    Windows builds in order to install only required packages when job is
    executing.
    
    Note that we are adding gettext, gettext-devel and glib2-devel
    explicit now on DEPS_COMMON. The reason is that, both Fedora and mingw
    builds require some tooling but for Fedora it gets installed
    indirectly while for Mingw, it doesn't and configure/build would fail.
    
    Signed-off-by: Victor Toso <victortoso at redhat.com>
    Acked-by: Frediano Ziglio <fziglio at redhat.com>

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 0c62c74..2167fe6 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,18 +1,24 @@
 image: fedora:latest
 
 variables:
-  DEPS: git libtool make python3 python3-six redhat-rpm-config
-        python3-pyparsing meson ninja-build zlib-devel openssl-devel
-        intltool gtk3-devel gtk-doc gobject-introspection-devel
-        cyrus-sasl-devel pulseaudio-libs-devel libjpeg-turbo-devel
-        libacl-devel gstreamer1-devel gstreamer1-plugins-base-devel
-        polkit-devel vala lz4-devel opus-devel
-        pixman-devel libcacard-devel celt051-devel libphodav-devel
-        usbutils usbredir-devel libusbx-devel libsoup-devel
-        json-glib-devel
+  DEPS_COMMON: git libtool make python3 python3-six redhat-rpm-config
+               python3-pyparsing meson ninja-build gtk-doc glib2-devel
+               gettext gettext-devel
+
+  DEPS_FEDORA: zlib-devel openssl-devel intltool gtk3-devel
+               gobject-introspection-devel cyrus-sasl-devel
+               pulseaudio-libs-devel libjpeg-turbo-devel
+               libacl-devel gstreamer1-devel gstreamer1-plugins-base-devel
+               polkit-devel vala lz4-devel opus-devel pixman-devel
+               libcacard-devel celt051-devel libphodav-devel usbutils
+               usbredir-devel libusbx-devel libsoup-devel json-glib-devel
+
+  DEPS_MINGW: mingw64-gcc mingw64-pkg-config mingw64-pixman mingw64-openssl
+              mingw64-gtk3 mingw64-json-glib mingw64-opus
+              mingw64-gstreamer1-plugins-base mingw64-gstreamer1-plugins-good
 
 before_script:
-  - dnf install -y $DEPS
+  - dnf install -y $DEPS_COMMON $DEPS_FEDORA
   - git clone ${CI_REPOSITORY_URL/spice-gtk/spice-protocol}
   - (cd spice-protocol && ./autogen.sh --prefix=/usr && make install)
 
@@ -47,7 +53,7 @@ fedora-meson:
 
 windows-autotools:
   script:
-    - dnf install -y mingw64-gcc mingw64-pkg-config mingw64-pixman mingw64-openssl mingw64-gtk3 mingw64-json-glib mingw64-opus mingw64-gstreamer1-plugins-base mingw64-gstreamer1-plugins-good
+    - dnf install -y $DEPS_COMMON $DEPS_MINGW
     - (cd spice-protocol && make clean && mingw64-configure --prefix=/usr && make install)
     - NOCONFIGURE=yes ./autogen.sh
     - PYTHON=python3 mingw64-configure --enable-static
commit 79cc0fc0a2aa8e4cbcc6f6fa33560ed11029690c
Author: Victor Toso <me at victortoso.com>
Date:   Thu Feb 7 10:00:17 2019 +0000

    gitlab-ci: group and rename jobs
    
    Group by target build instead of command. The focus of each job is to
    check any regression for given platform, using 'fedora'/'windows' and
    'autotools'/'meson' seems more intuitive.
    
    By doing that we are grouping similar jobs together, this is
    intentional as we are reducing the amount of jobs that need to be run
    (together with the whole bootstrapping) without losing logs or tests.
    
    Some indentation takes place too, keeping it to 2 spaces as some other
    places in the code
    
    v1 -> v2:
    - Remove initial '_' from build folder filenames (Frediano);
    - Always use '-' instead of '_' in build folder filenames (Frediano);
    
    Signed-off-by: Victor Toso <victortoso at redhat.com>
    Acked-by: Marc-André Lureau <marcandre.lureau at redhat.com>
    Acked-by: Frediano Ziglio <fziglio at redhat.com>

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 74280e9..0c62c74 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -16,41 +16,39 @@ before_script:
   - git clone ${CI_REPOSITORY_URL/spice-gtk/spice-protocol}
   - (cd spice-protocol && ./autogen.sh --prefix=/usr && make install)
 
-makecheck:
+fedora-autotools:
   script:
-  - ./autogen.sh --enable-static
-  - make -j4
-  - make check
+    # Run with default options
+    - ./autogen.sh --enable-static
+    - make -j4
+    - make check
+    # Run without features
+    - git clean -xfd
+    - ./autogen.sh --enable-static
+          --enable-lz4=no
+          --enable-webdav=no
+          --with-sasl=no
+          --with-coroutine=auto
+          --enable-pulse=no
+          --enable-smartcard=no
+          --enable-usbredir=no
+    - make -j4
+    - make check
 
-makecheck-meson:
+fedora-meson:
   script:
-  - meson 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)
+    - meson build-default || (cat build-default/meson-logs/meson-log.txt && exit 1)
+    - ninja -C build-default
+    - ninja -C build-default test || (cat build-default/meson-logs/testlog.txt && exit 1)
 
-makecheck_simple:
-  script:
-  - ./autogen.sh --enable-static
-        --enable-lz4=no
-        --enable-webdav=no
-        --with-sasl=no
-        --with-coroutine=auto
-        --enable-pulse=no
-        --enable-smartcard=no
-        --enable-usbredir=no
-  - make -j4
-  - make check
-
-makecheck_simple-meson:
-  script:
-  - meson build -Dauto_features=disabled || (cat build/meson-logs/meson-log.txt && exit 1)
-  - ninja -C build
-  - (cd build && meson test) || (cat build/meson-logs/testlog.txt && exit 1)
+    - meson build-feat-disabled -Dauto_features=disabled || (cat build-feat-disabled/meson-logs/meson-log.txt && exit 1)
+    - ninja -C build-feat-disabled
+    - ninja -C build-feat-disabled test || (cat build-feat-disabled/meson-logs/testlog.txt && exit 1)
 
-make-win:
+windows-autotools:
   script:
-  - dnf install -y mingw64-gcc mingw64-pkg-config mingw64-pixman mingw64-openssl mingw64-gtk3 mingw64-json-glib mingw64-opus mingw64-gstreamer1-plugins-base mingw64-gstreamer1-plugins-good
-  - (cd spice-protocol && make clean && mingw64-configure --prefix=/usr && make install)
-  - NOCONFIGURE=yes ./autogen.sh
-  - PYTHON=python3 mingw64-configure --enable-static
-  - make -j4
+    - dnf install -y mingw64-gcc mingw64-pkg-config mingw64-pixman mingw64-openssl mingw64-gtk3 mingw64-json-glib mingw64-opus mingw64-gstreamer1-plugins-base mingw64-gstreamer1-plugins-good
+    - (cd spice-protocol && make clean && mingw64-configure --prefix=/usr && make install)
+    - NOCONFIGURE=yes ./autogen.sh
+    - PYTHON=python3 mingw64-configure --enable-static
+    - make -j4


More information about the Spice-commits mailing list