From 2c893d3538b066b03249f5d9caffb0ebc8fbb948 Mon Sep 17 00:00:00 2001 From: Yong He Date: Wed, 11 Nov 2020 12:33:32 -0800 Subject: Integrate github action for linux build+test. (#1601) --- .github/workflows/c-cpp.yml | 31 +++++++++++++++++++++++++++++++ github_build.sh | 16 ++++++++++++++++ github_test.sh | 24 ++++++++++++++++++++++++ 3 files changed, 71 insertions(+) create mode 100644 .github/workflows/c-cpp.yml create mode 100644 github_build.sh create mode 100644 github_test.sh 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} -- cgit v1.2.3