[gnome-shell/wip/fmuellner/more-ci: 4/7] ci: Add build stage
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/wip/fmuellner/more-ci: 4/7] ci: Add build stage
- Date: Thu, 21 Feb 2019 21:16:53 +0000 (UTC)
commit 3e579f158ece08d8495e06202caecf2b624e495d
Author: Florian Müllner <fmuellner gnome org>
Date: Tue Feb 12 17:53:42 2019 +0100
ci: Add build stage
So far we are only performing a basic syntax check on javascript
sources; it's time to test the C code as well. As mutter is tightly
coupled, we bite the bullet and build it as well, either using a
matching branch (if it exists), or current master.
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/408
.gitlab-ci.yml | 24 +++++++++++++++++++++---
.gitlab-ci/Dockerfile | 19 +++++++++++++++++++
.gitlab-ci/checkout-mutter.sh | 31 +++++++++++++++++++++++++++++++
3 files changed, 71 insertions(+), 3 deletions(-)
---
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a08ee78ce..27fff7235 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,10 +1,17 @@
stages:
- review
- source_check
+ - build
variables:
JS_LOG: "js-report.txt"
+.only_default: &only_default
+ only:
+ - branches
+ - tags
+ - merge_requests
+
check_commit_log:
image: registry.fedoraproject.org/fedora:latest
stage: review
@@ -23,6 +30,7 @@ js_check:
script:
- find js -name '*.js' -exec js60 -c -s '{}' ';' 2>&1 | tee $JS_LOG
- (! grep -q . $JS_LOG)
+ <<: *only_default
only:
changes:
- js/**/*
@@ -30,6 +38,16 @@ js_check:
paths:
- ${JS_LOG}
when: on_failure
- only:
- - merge_requests
- - /^.*$/
+
+build:
+ image: registry.gitlab.gnome.org/gnome/gnome-shell/master:v1
+ stage: build
+ before_script:
+ - .gitlab-ci/checkout-mutter.sh
+ - meson mutter mutter/build --prefix=/usr -Dtests=false
+ - ninja -C mutter/build install
+ script:
+ - meson . build -Dbuiltype=debugoptimized
+ - ninja -C build
+ - ninja -C build install
+ <<: *only_default
diff --git a/.gitlab-ci/Dockerfile b/.gitlab-ci/Dockerfile
new file mode 100644
index 000000000..aeb43b1b3
--- /dev/null
+++ b/.gitlab-ci/Dockerfile
@@ -0,0 +1,19 @@
+FROM registry.gitlab.gnome.org/gnome/mutter/master:v1
+
+RUN dnf -y update && dnf -y upgrade && \
+ dnf install -y 'dnf-command(copr)' && \
+ dnf copr enable -y fmuellner/gnome-shell-ci && \
+ dnf builddep -y gnome-shell --setopt=install_weak_deps=False && \
+
+ # bt only exports HAVE_BLUETOOTH to js, rest are outdated build-requires
+ dnf remove -y gnome-bluetooth-libs-devel dbus-glib-devel \
+ upower-devel python3-devel && \
+
+ # We'll build mutter ourselves
+ dnf remove -y --noautoremove mutter mutter-devel && \
+
+ # Needed for tests
+ dnf install -y '*/xvfb-run' gdm-lib accountsservice-libs && \
+
+ dnf clean all && \
+ rm -rf /var/cache/dnf
diff --git a/.gitlab-ci/checkout-mutter.sh b/.gitlab-ci/checkout-mutter.sh
new file mode 100755
index 000000000..1fb7c6f9d
--- /dev/null
+++ b/.gitlab-ci/checkout-mutter.sh
@@ -0,0 +1,31 @@
+#!/usr/bin/bash
+
+shell_branch=$(git describe --contains --all HEAD)
+mutter_target=
+
+git clone https://gitlab.gnome.org/GNOME/mutter.git
+
+if [ $? -ne 0 ]; then
+ echo Checkout failed
+ exit 1
+fi
+
+cd mutter
+
+if [ "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" ]; then
+ merge_request_remote=${CI_MERGE_REQUEST_SOURCE_PROJECT_URL//gnome-shell/mutter}
+ merge_request_branch=$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
+
+ echo Looking for $merge_request_branch on remote ...
+ if git fetch $merge_request_remote $merge_request_branch >/dev/null 2>&1; then
+ mutter_target=FETCH_HEAD
+ fi
+fi
+
+if [ -z "$mutter_target" ]; then
+ mutter_target=$(git branch -r -l $shell_branch)
+ mutter_target=${mutter_target:-origin/master}
+ echo Using $mutter_target instead
+fi
+
+git checkout $mutter_target
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]