1 # NOTE: This workflow was ported from Travis.
2 # Travis was using Ubuntu 14.04. Ubuntu 14.04 is not supportted by GitHub workflows. Ubuntu 20.04 is recommended.
3 # Travis was using Clang 3.6. The earliest version support by Ubuntu 20.04 is Clang 6.0.
4 # Travis was caching the clang package. APT package caching is not natively supported by GitHub actions/cache.
5 # Travis was using Mac OS X 10.13.6 / Xcode 9.4.1 / LLVM 9.1.0
7 name: Continuous Integration
17 runs-on: ${{matrix.os}}
22 compiler: [{cc: clang, cxx: clang++}, {cc: gcc, cxx: g++}]
23 cmake_build_type: [Debug, Release]
25 - uses: actions/checkout@v2
26 - uses: actions/setup-python@v2
29 - name: Install Ubuntu Package Dependencies
31 sudo apt-get -qq update
32 sudo apt-get install -y clang-6.0
33 - name: Install GoogleTest
35 # check out pre-breakage version of googletest; can be deleted when
37 # git clone --depth=1 https://github.com/google/googletest.git External/googletest
38 mkdir -p External/googletest
39 cd External/googletest
41 git remote add origin https://github.com/google/googletest.git
42 git fetch --depth 1 origin 0c400f67fcf305869c5fb113dd296eca266c9725
43 git reset --hard FETCH_HEAD
45 - name: Update Glslang Sources
47 ./update_glslang_sources.py
50 CC: ${{matrix.compiler.cc}}
51 CXX: ${{matrix.compiler.cxx}}
53 mkdir build && cd build
54 cmake -DCMAKE_BUILD_TYPE=${{matrix.cmake_build_type}} -DCMAKE_INSTALL_PREFIX=`pwd`/install ..
59 ctest --output-on-failure &&
60 cd ../Test && ./runtests
63 runs-on: ${{matrix.os}}
68 compiler: [{cc: clang, cxx: clang++}]
69 cmake_build_type: [Debug, Release]
71 - uses: actions/checkout@v2
72 - uses: actions/setup-python@v2
75 - name: Install GoogleTest
77 # check out pre-breakage version of googletest; can be deleted when
79 # git clone --depth=1 https://github.com/google/googletest.git External/googletest
80 mkdir -p External/googletest
81 cd External/googletest
83 git remote add origin https://github.com/google/googletest.git
84 git fetch --depth 1 origin 0c400f67fcf305869c5fb113dd296eca266c9725
85 git reset --hard FETCH_HEAD
87 - name: Update Glslang Sources
89 ./update_glslang_sources.py
92 CC: ${{matrix.compiler.cc}}
93 CXX: ${{matrix.compiler.cxx}}
95 mkdir build && cd build
96 cmake -DCMAKE_BUILD_TYPE=${{matrix.cmake_build_type}} -DCMAKE_INSTALL_PREFIX=`pwd`/install ..
101 ctest --output-on-failure &&
102 cd ../Test && ./runtests
105 runs-on: ${{matrix.os}}
110 compiler: [{cc: clang, cxx: clang++}]
111 cmake_build_type: [Release]
113 - uses: actions/checkout@v2
114 - uses: actions/setup-python@v2
116 python-version: '3.7'
117 - name: Install Ubuntu Package Dependencies
118 if: ${{matrix.os == 'ubuntu-20.04'}}
120 sudo apt-get -qq update
121 sudo apt-get install -y clang-6.0
122 - name: Install Android NDK
124 export ANDROID_NDK=$HOME/android-ndk
125 git init $ANDROID_NDK
127 git remote add dneto0 https://github.com/dneto0/android-ndk.git
128 git fetch --depth=1 dneto0 r17b-strip
129 git checkout FETCH_HEAD
131 - name: Install GoogleTest
133 # check out pre-breakage version of googletest; can be deleted when
134 # issue 3128 is fixed
135 # git clone --depth=1 https://github.com/google/googletest.git External/googletest
136 mkdir -p External/googletest
137 cd External/googletest
139 git remote add origin https://github.com/google/googletest.git
140 git fetch --depth 1 origin 0c400f67fcf305869c5fb113dd296eca266c9725
141 git reset --hard FETCH_HEAD
143 - name: Update Glslang Sources
145 ./update_glslang_sources.py
148 CC: ${{matrix.compiler.cc}}
149 CXX: ${{matrix.compiler.cxx}}
151 export ANDROID_NDK=$HOME/android-ndk
152 export TOOLCHAIN_PATH=$ANDROID_NDK/build/cmake/android.toolchain.cmake
155 mkdir build && cd build
156 cmake -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_PATH} -DANDROID_NATIVE_API_LEVEL=android-14 -DCMAKE_BUILD_TYPE=${{matrix.cmake_build_type}} -DANDROID_ABI="armeabi-v7a with NEON" -DBUILD_TESTING=OFF ..