summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2020-11-11 12:33:32 -0800
committerGitHub <noreply@github.com>2020-11-11 12:33:32 -0800
commit2c893d3538b066b03249f5d9caffb0ebc8fbb948 (patch)
tree81d71e89ea59c9c480e7b21f683dd98cbc0435e4
parent8f0895e0f8257da2fd10b6325931627a9a1792ba (diff)
Integrate github action for linux build+test. (#1601)
-rw-r--r--.github/workflows/c-cpp.yml31
-rw-r--r--github_build.sh16
-rw-r--r--github_test.sh24
3 files changed, 71 insertions, 0 deletions
diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml
new file mode 100644
index 000000000..2bffa36ed
--- /dev/null
+++ b/.github/workflows/c-cpp.yml
@@ -0,0 +1,31 @@
+name: C/C++ CI
+
+on:
+ push:
+ branches: [ master ]
+ pull_request:
+ branches: [ master ]
+
+jobs:
+ build:
+
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ configuration: ['debug', 'release']
+ compiler: ['gcc', 'clang']
+ steps:
+ - uses: actions/checkout@v2.3.4
+ with:
+ submodules: 'true'
+ fetch-depth: '0'
+ - name: build
+ run:
+ CC=${{matrix.compiler}}
+ CONFIGURATION=${{matrix.configuration}}
+ source ./github_build.sh
+ - name: test
+ run:
+ CONFIGURATION=${{matrix.configuration}}
+ CC=${{matrix.compiler}}
+ source ./github_test.sh \ No newline at end of file
diff --git a/github_build.sh b/github_build.sh
new file mode 100644
index 000000000..b0970a903
--- /dev/null
+++ b/github_build.sh
@@ -0,0 +1,16 @@
+#!/usr/bin/env bash
+# Get premake
+wget https://github.com/shader-slang/slang-binaries/blob/master/premake/premake-5.0.0-alpha13/bin/linux-64/premake5?raw=true -O premake5
+chmod u+x premake5
+
+# generate slang-tag-version.h
+git describe --tags | sed -e "s/\(.*\)/\#define SLANG_TAG_VERSION \"\1\"/" > slang-tag-version.h
+cat slang-tag-version.h
+
+# Create the makefile
+./premake5 gmake --cc=${CC}
+
+# Build the configuration
+make config=${CONFIGURATION}_x64
+
+
diff --git a/github_test.sh b/github_test.sh
new file mode 100644
index 000000000..18d2d1d3b
--- /dev/null
+++ b/github_test.sh
@@ -0,0 +1,24 @@
+#!/usr/bin/env bash
+
+# CONFIGURATION=release or debug
+if [ "${CC}" == "gcc" ] && [ "${CONFIGURATION}" == "release" ]
+then
+ SLANG_TEST_CATEGORY=full
+else
+ SLANG_TEST_CATEGORY=smoke
+fi
+
+PLATFORM=$(uname -s | tr '[:upper:]' '[:lower:]')
+ARCHITECTURE=$(uname -p)
+
+if [ "${ARCHITECTURE}" == "x86_64" ]; then
+ ARCHITECTURE="x64"
+fi
+
+TARGET=${PLATFORM}-${ARCHITECTURE}
+
+OUTPUTDIR=bin/${TARGET}/${CONFIGURATION}/
+
+SLANG_TEST=${OUTPUTDIR}slang-test
+
+${SLANG_TEST} -bindir ${OUTPUTDIR} -travis -category ${SLANG_TEST_CATEGORY} ${SLANG_TEST_FLAGS}