summaryrefslogtreecommitdiffstats
path: root/docs/ci.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/ci.md')
-rw-r--r--docs/ci.md18
1 files changed, 18 insertions, 0 deletions
diff --git a/docs/ci.md b/docs/ci.md
new file mode 100644
index 000000000..bfb101dff
--- /dev/null
+++ b/docs/ci.md
@@ -0,0 +1,18 @@
+# Our CI
+
+There are github actions for testing building and testing slang.
+
+## Tests
+
+Most configurations run a restricted set of tests, however on some self hosted runners we run the full test suite, as well as running Falcor's test suite with the new slang build.
+
+## Building LLVM
+
+We require a static build of LLVM for building slang-llvm, we build and cache this in all workflow runs. Since this changes infrequently, the cache is almost always hit. A cold build takes about an hour on the slowest platform. The cached output is a few hundred MB, so conceivably if we add many more platforms we might be caching more than the 10GB github allowance, which would necessitate being a bit more complicated in building and tracking outputs here.
+
+For slang-llvm, this is handled the same as any other dependency, except on Windows Debug builds, where we are required by the differences in Debug/Release standard libraries to always make a release build, this is noted in the ci action yaml file.
+
+## sccache
+
+The CI actions use sccache, keyed on compiler and platform, this runs on all configurations and significantly speeds up small source change builds. This cache can be safely missed without a large impact on build times.
+