Add a simple build test to the Vulkan WSI Layer's CI
authorMatteo Franchin <matteo.franchin@arm.com>
Fri, 13 Sep 2019 18:34:18 +0000 (19:34 +0100)
committerMatteo Franchin <matteo.franchin@arm.com>
Mon, 30 Sep 2019 15:06:46 +0000 (16:06 +0100)
The test just ensures the code can be built. For now we start from a
Fedora image and install quite a number of packages. This is not very
friendly in terms of network bandwidth. We should address this by
uploading a custom image in the future.

Signed-off-by: Matteo Franchin <matteo.franchin@arm.com>
Change-Id: I5c9fa86b081650ce12ef92e333475670a4daa5fb

.gitlab-ci.yml [new file with mode: 0644]

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644 (file)
index 0000000..49fee75
--- /dev/null
@@ -0,0 +1,53 @@
+# Copyright (c) 2019 Arm Limited.
+#
+# SPDX-License-Identifier: MIT
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+default:
+  image: "registry.fedoraproject.org/fedora"
+
+# For now start from a standard Fedora image and install everything each time.
+before_script:
+  - pwd
+  - uname -a
+  # Install necessary packages.
+  # Oddly the exit status of the command below is nonzero even on success, just ignore it.
+  - yes | dnf install make cmake gcc g++ python git libxcb-devel libxkbcommon-devel wayland-devel libXrandr-devel || true
+  # Check out and set-up the Vulkan Loader.
+  - mkdir /build
+  - pushd /build
+  - git clone --depth=1 https://github.com/KhronosGroup/Vulkan-Loader.git
+  - cd Vulkan-Loader
+  - mkdir build
+  - cd build/
+  - ../scripts/update_deps.py
+  # Build the Vulkan loader.
+  - cmake -C helper.cmake ..
+  - make
+  - make install
+  - popd
+
+build_vulkan_wsi_layer:
+  script:
+    - pwd
+    - mkdir build
+    - cd build
+    - cmake .. -DVULKAN_CXX_INCLUDE=/build/Vulkan-Loader/build/Vulkan-Headers/build/install/include
+    - make