summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2023-07-20 12:50:21 -0700
committerGitHub <noreply@github.com>2023-07-20 12:50:21 -0700
commit76fe0a1dcc73af87846bf27932716188d68d37f0 (patch)
tree8e16a66c9bb4bd3527011adc580ab36b0c3863fe
parentb959836483030dabd63a4618418386a3f7144028 (diff)
Add linux arm64 self-hosted CI. (#3003)
* Add linux arm64 self-hosted CI. * Update CI build script. * fix * Ignore test if FileCheck not found. --------- Co-authored-by: Yong He <yhe@nvidia.com>
-rw-r--r--.github/workflows/linux-arm64.yml56
-rw-r--r--github_build.sh4
-rw-r--r--github_test.sh15
-rw-r--r--tools/slang-test/slang-test-main.cpp8
4 files changed, 72 insertions, 11 deletions
diff --git a/.github/workflows/linux-arm64.yml b/.github/workflows/linux-arm64.yml
new file mode 100644
index 000000000..8a2f958a2
--- /dev/null
+++ b/.github/workflows/linux-arm64.yml
@@ -0,0 +1,56 @@
+name: Linux/ARM64 Build and Test
+
+on:
+ push:
+ branches: [ master ]
+ pull_request:
+ branches: [ master ]
+
+jobs:
+ build:
+
+ runs-on: ['self-hosted', 'Linux', 'ARM64']
+ strategy:
+ matrix:
+ configuration: ['release']
+ compiler: ['gcc']
+ platform: ['aarch64']
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ submodules: 'true'
+ fetch-depth: '0'
+ - name: build
+ run: |
+ CC=${{matrix.compiler}}
+ CONFIGURATION=${{matrix.configuration}}
+ ARCH=${{matrix.platform}}
+ TARGETARCH=${{matrix.platform}}
+ if [[ "$CC" == "clang" ]]; then
+ CFLAGS=-Werror
+ CPPFLAGS=-Werror
+ CXXFLAGS=-Werror
+ fi
+ source ./github_build.sh
+ - uses: actions/upload-artifact@v3
+ with:
+ name: slang-build-${{matrix.configuration}}-${{matrix.platform}}-${{matrix.compiler}}
+ path: |
+ slang.h
+ slang-com-helper.h
+ slang-com-ptr.h
+ slang-tag-version.h
+ slang-gfx.h
+ prelude/*.h
+ bin/**/*.dll
+ bin/**/*.exe
+ bin/**/*.so
+ bin/**/slangc
+ bin/**/slangd
+ docs/*.md
+ - name: test
+ run:
+ CONFIGURATION=${{matrix.configuration}}
+ CC=${{matrix.compiler}}
+ ARCH=${{matrix.platform}}
+ source ./github_test.sh
diff --git a/github_build.sh b/github_build.sh
index b9c0f24da..357989ccc 100644
--- a/github_build.sh
+++ b/github_build.sh
@@ -1,6 +1,10 @@
#!/usr/bin/env bash
# Get premake
+if [[ "aarch64" == "${ARCH}" ]]; then
+wget https://github.com/shader-slang/slang-binaries/blob/master/premake/premake-5.0.0-alpha16/bin/linux-arm64/premake5?raw=true -O premake5
+else
wget https://github.com/shader-slang/slang-binaries/blob/master/premake/premake-5.0.0-alpha16/bin/linux-64/premake5?raw=true -O premake5
+fi
chmod u+x premake5
# generate slang-tag-version.h
diff --git a/github_test.sh b/github_test.sh
index fb94c95ac..274250a7d 100644
--- a/github_test.sh
+++ b/github_test.sh
@@ -1,12 +1,5 @@
#!/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 -m)
@@ -25,6 +18,14 @@ if [ "${ARCHITECTURE}" == "x86_64" ]; then
ARCHITECTURE="x64"
fi
+# CONFIGURATION=release or debug
+if [ "${CC}" == "gcc" ] && [ "${CONFIGURATION}" == "release" ] && [ "${ARCHITECTURE}" == "x64" ]
+then
+ SLANG_TEST_CATEGORY=full
+else
+ SLANG_TEST_CATEGORY=smoke
+fi
+
TARGET=${PLATFORM}-${ARCHITECTURE}
OUTPUTDIR=bin/${TARGET}/${CONFIGURATION}/
diff --git a/tools/slang-test/slang-test-main.cpp b/tools/slang-test/slang-test-main.cpp
index 99593bb90..1359b4474 100644
--- a/tools/slang-test/slang-test-main.cpp
+++ b/tools/slang-test/slang-test-main.cpp
@@ -635,10 +635,10 @@ static TestResult _fileCheckTest(
IFileCheck* fc = context.getFileCheck();
if(!fc)
{
- // TODO(JS):
- // Do we want to fail or ignore if we don't find file check?
- testReporter.message(TestMessageType::RunError, "FileCheck is not available");
- return TestResult::Fail;
+ // Ignore if FileCheck is not available.
+ // We could report an error, but our ARM64 CI doesn't have FileCheck yet.
+ testReporter.message(TestMessageType::Info, "FileCheck is not available");
+ return TestResult::Ignored;
}
const bool coloredOutput = true;