[glib-networking/alatiera/bst-ci: 1/2] CI: Add a Buildstream job
- From: Jordan Petridis <jpetridis src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib-networking/alatiera/bst-ci: 1/2] CI: Add a Buildstream job
- Date: Sun, 21 Oct 2018 17:10:44 +0000 (UTC)
commit e8461b7dd25eb6a4b01d310c2a28a304e26476d9
Author: Jordan Petridis <jpetridis gnome org>
Date: Sun Oct 21 18:35:59 2018 +0300
CI: Add a Buildstream job
This reuses the build definition of glib-networking from
gnome-build-meta[1] to build and run the tests inside an
isolated and reproducible environment
.gitlab-ci.yml | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 56 insertions(+)
---
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7c4358e..acc32f7 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -20,3 +20,59 @@ build_stable:
paths:
- build/test-results
when: on_failure
+
+.bst:
+ image: "buildstream/buildstream-fedora:master-113-499df6a5"
+ variables:
+ # Store all the bst stuff under the "${CI_PROJECT_DIR}" directory.
+ # Note that GitLab CI will only cache stuff inside the "${CI_PROJECT_DIR}" folder.
+ XDG_CACHE_HOME: "${CI_PROJECT_DIR}/cache"
+ GET_SOURCES_ATTEMPTS: 3
+ BST: "bst --no-strict --config build.conf --log-file ../logs/build.log --colors"
+ BST_SHA: "10abe77fe8d77385d86f225b503d9185f4ef7f3a" # 1.2.3
+
+ before_script:
+ - dnf install -y xorg-x11-server-Xvfb
+
+ # Use specific version of BuildStream
+ - git clone https://gitlab.com/BuildStream/buildstream.git
+ - git -C buildstream/ checkout $BST_SHA
+ - pip3 install buildstream/
+
+ # Clone the GNOME moduleset
+ - git clone --depth=1 https://gitlab.gnome.org/GNOME/gnome-build-meta.git
+
+ # Ensure the log directory exists
+ - mkdir -p logs
+ script:
+ - cd gnome-build-meta/
+ # Ideally this would not be needed, but can't figure out a better way
+ - ${BST} build --track-all ${ELEMENT}
+ - ${BST} workspace open --no-checkout --track ${ELEMENT} ../
+ # FIXME: extract logs
+ - |
+ xvfb-run -a -s "-screen 0 1024x768x24" \
+ dbus-run-session \
+ ${BST} shell --build ${ELEMENT} -- /bin/bash -c \
+ 'meson build && ninja -C build && NO_AT_BRIDGE=1 meson test -C build --print-errorlogs'
+ - ${BST} workspace close ${ELEMENT}
+
+ # Store all the downloaded git and ostree repos in the cache.
+ # This saves us fetching them on every build
+ cache:
+ key: "bst"
+ paths:
+ - "${XDG_CACHE_HOME}/buildstream/sources/"
+
+ # Store artifacts so we can inspect build failures
+ artifacts:
+ when: "always"
+ paths:
+ - "logs"
+ - "gnome-build-meta/project.refs"
+
+bst:
+ variables:
+ ELEMENT: "core-deps/glib-networking.bst"
+ extends: .bst
+
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]