summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gnome.org>2018-03-20 16:08:45 +0000
committerEmmanuele Bassi <ebassi@gnome.org>2018-03-20 16:27:18 +0000
commit3a1e2c7ad0511e330799ba50d528432478ca0285 (patch)
tree509359eab4f2e2757d481e9b4227624d6064eb2c
parenta7578fce06c5544d30b64894523c6253ea064e47 (diff)
downloadgtk+-3a1e2c7ad0511e330799ba50d528432478ca0285.tar.gz
ci: Add two flatpak jobsci-flatpak
When building GTK through the CI infrastructure, it would help to have some ways of testing it; for instance, if we want to verify that theme changes are useful, or if we want to run the result without necessarily build it locally. This is where flatpak comes in handy. By having the CI build a flatpak buundle, and storing it as an artifact, of the GTK demos, we can easily point developers and designers to an installable binary that won't break their system, nor will require development tools and environments to run.
-rw-r--r--.gitlab-ci.yml58
1 files changed, 42 insertions, 16 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 33d2276de0..682fc9a47c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,27 +1,53 @@
-image: ebassi/gitlab-gtk:latest
-
stages:
- build
+ - flatpak
-before_script:
- - mkdir -p _ccache
- - export CCACHE_BASEDIR=${PWD}
- - export CCACHE_DIR=${PWD}/_ccache
-
-cache:
- paths:
- - subprojects/gdk-pixbuf/
- - subprojects/glib/
- - subprojects/graphene/
- - subprojects/libepoxy/
- - subprojects/pango/
-
-build:
+gtk:
+ image: ebassi/gitlab-gtk:latest
stage: build
+ before_script:
+ - mkdir -p _ccache
+ - export CCACHE_BASEDIR=${PWD}
+ - export CCACHE_DIR=${PWD}/_ccache
script:
- bash -x ./.gitlab-ci/test-docker.sh
+ cache:
+ paths:
+ - subprojects/gdk-pixbuf/
+ - subprojects/glib/
+ - subprojects/graphene/
+ - subprojects/libepoxy/
+ - subprojects/pango/
artifacts:
when: on_failure
name: "gtk-${CI_COMMIT_REF_NAME}"
paths:
- "${CI_PROJECT_DIR}/_build/meson-logs"
+
+flatpak:demo:
+ image: registry.gitlab.com/alatiera/gnome-nightly-oci/gnome-master:latest
+ stage: flatpak
+ script:
+ - flatpak-builder --stop-at=gtk app build-aux/flatpak/org.gtk.Demo.json
+ - flatpak-builder --run app build-aux/flatpak/org.gtk.Demo.json meson --prefix /app --libdir /app/lib --buildtype debug -Dx11-backend=true -Dwayland-backend=true -Dprint-backends=file -Dbuild-tests=false -Ddemos=true _build .
+ - flatpak-builder --run app build-aux/flatpak/org.gtk.Demo.json ninja -C _build install
+ - flatpak-builder --finish-only --repo=repo app build-aux/flatpak/org.gtk.Demo.json
+ - flatpak build-bundle repo gtk-demo-dev.flatpak --runtime-repo=https://flathub.org/repo/flathub.flatpakrepo org.gtk.Demo
+ artifacts:
+ paths:
+ - gtk-demo-dev.flatpak
+ expire_in: 1 day
+
+flatpak:widget-factory:
+ image: registry.gitlab.com/alatiera/gnome-nightly-oci/gnome-master:latest
+ stage: flatpak
+ script:
+ - flatpak-builder --stop-at=gtk app build-aux/flatpak/org.gtk.WidgetFactory.json
+ - flatpak-builder --run app build-aux/flatpak/org.gtk.WidgetFactory.json meson --prefix /app --libdir /app/lib --buildtype debug -Dx11-backend=true -Dwayland-backend=true -Dprint-backends=file -Dbuild-tests=false -Ddemos=true _build .
+ - flatpak-builder --run app build-aux/flatpak/org.gtk.WidgetFactory.json ninja -C _build install
+ - flatpak-builder --finish-only --repo=repo app build-aux/flatpak/org.gtk.WidgetFactory.json
+ - flatpak build-bundle repo gtk-widget-factory-dev.flatpak --runtime-repo=https://flathub.org/repo/flathub.flatpakrepo org.gtk.WidgetFactory
+ artifacts:
+ paths:
+ - gtk-widget-factory-dev.flatpak
+ expire_in: 1 day