[mutter/gbsneto/better-ci: 7/8] ci: Build GNOME Shell at the test stage



commit 3590bb19cc6f1b3b452ab60dc93806fb83bcb376
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Mon Apr 22 14:54:11 2019 -0300

    ci: Build GNOME Shell at the test stage
    
    Hopefully this will allow us prevent merging branches
    that accidentally break GNOME Shell.
    
    https://gitlab.gnome.org/GNOME/mutter/merge_requests/548

 .gitlab-ci.yml                     | 15 +++++++++++++++
 .gitlab-ci/checkout-gnome-shell.sh | 35 +++++++++++++++++++++++++++++++++++
 2 files changed, 50 insertions(+)
---
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f86ffd516..9d06190f4 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -44,3 +44,18 @@ test-mutter:
   only:
     - merge_requests
     - /^.*$/
+
+can-build-gnome-shell:
+  image: registry.gitlab.gnome.org/gnome/gnome-shell/master:v1
+  stage: test
+  dependencies:
+    - build-mutter
+  before_script:
+    - meson install --no-rebuild -C build
+  script:
+    - .gitlab-ci/checkout-gnome-shell.sh
+    - meson gnome-shell gnome-shell/build
+    - ninja -C gnome-shell/build install
+  only:
+    - merge_requests
+    - /^.*$/
diff --git a/.gitlab-ci/checkout-gnome-shell.sh b/.gitlab-ci/checkout-gnome-shell.sh
new file mode 100755
index 000000000..64c1af953
--- /dev/null
+++ b/.gitlab-ci/checkout-gnome-shell.sh
@@ -0,0 +1,35 @@
+#!/usr/bin/bash
+
+mutter_branch=$(git describe --contains --all HEAD)
+gnome_shell_target=
+
+git clone https://gitlab.gnome.org/GNOME/gnome-shell.git
+
+if [ $? -ne 0 ]; then
+  echo Checkout failed
+  exit 1
+fi
+
+cd gnome-shell
+
+if [ "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" ]; then
+  merge_request_remote=${CI_MERGE_REQUEST_SOURCE_PROJECT_URL//mutter/gnome-shell}
+  merge_request_branch=$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
+
+  echo Looking for $merge_request_branch on remote ...
+  if git fetch -q $merge_request_remote $merge_request_branch 2>/dev/null; then
+    gnome_shell_target=FETCH_HEAD
+  else
+    gnome_shell_target=origin/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME
+    echo Using $gnome_shell_target instead
+  fi
+fi
+
+if [ -z "$gnome_shell_target" ]; then
+  gnome_shell_target=$(git branch -r -l origin/$mutter_branch)
+  gnome_shell_target=${gnome_shell_target:-$(git branch -r -l ${mutter_branch#remotes/})}
+  gnome_shell_target=${gnome_shell_target:-origin/master}
+  echo Using $gnome_shell_target instead
+fi
+
+git checkout -q $gnome_shell_target


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]