summaryrefslogtreecommitdiffstats
path: root/.github/workflows/release.yml
Commit message (Collapse)AuthorAge
* Use GitHub runners for Windows releases, disable CUDA for aarch64 (#8613)aidanfnv2025-10-07
| | | | | | | | | | | | | | | | | | | | | For #8596 Fixes #8597 This switches our release workflow back to using GitHub's `windows-latest` runners, which we were using previously. It also adds the variable `extra-cmake-flags` to the `windows-aarch64` entry in the workflow's matrix with the value `"-DSLANG_ENABLE_CUDA=0"`. If we are cross-compiling aarch64 on x86_64, and the x86_64 CUDA Toolkit is installed, it will be auto-detected by cmake and the build will fail (no aarch64 version of CUDA Toolkit exists). The `windows-latest` runners do not have CUDA Toolkit, so they do not encounter this issue, but if we do end up building on runners that do (such as the temporary move to self-hosted runners), adding that flag eliminates that potential problem. This release workflow does build properly on `windows-latest` with `extra-cmake-flags`: https://github.com/aidanfnv/slang/actions/runs/18293521738
* Re-add macOS cross-compile setup to release workflow (#8583)aidanfnv2025-10-01
| | | | | | | | | | | | | | | | | | | | | For #8564 Similar to #8580, this re-adds the cross-compile target setup step for macOS releases that was erroneously removed in https://github.com/shader-slang/slang/pull/8470, which made x86_64 releases build aarch64 binaries. It also simplifies the workflow logic a bit by adding a separate `arch` variable to the release matrix, which refers to the target architecture in the manner that the setup requires, so that we do not have to replace the string `"aarch64"` with `"arm64"` in setting `CMAKE_OSX_ARCHITECTURES` for native aarch64 macOS builds and do not have to conditionally set the MSVC `arch` to `amd64_arm64` for Windows cross-compilation. --------- Co-authored-by: slangbot <ellieh+slangbot@nvidia.com> Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
* Re-add Windows cross-compile setup from release workflow (#8580)aidanfnv2025-10-01
| | | | | | | | | | | | | | | | | For #8578 This re-adds the cross-compile target setup step for Windows releases that was erroneously removed in #8470, which made aarch64 releases build x64 binaries. The flow should be: - setup MSVC for host arch - build generators with cmake - setup MSVC for cross-compile target arch - build slang Based on the description of #8470, it seems that the cross-compile MSVC step was mistaken as a duplicate for the host MSVC step and removed for being seemingly redundant.
* Use self-hosted runner for Windows release build (#8470)Gangzheng Tong2025-09-17
| | | | | | | | | | - Remove hard-coded Win SDK version. - Using self-hosted machine for building release package in Windows. - Remove the steps from release.yml that have been done in common steup. --------- Co-authored-by: slangbot <ellieh+slangbot@nvidia.com> Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
* Split CI to build and test jobs (#8359)Gangzheng Tong2025-09-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The CI has been re-organized with the following: ``` ci.yml (Main Orchestrator) ├── filter job │ ├── Documentation Only? → Yes → Skip CI │ └── Documentation Only? → No → Continue CI │ ├── Build Jobs │ └── ci-slang-build.yml │ ├── common-setup action │ ├── Build & Package │ └── Upload Artifacts (Build package and Tests package) │ └── Test Jobs └── ci-slang-test.yml └── common-test-setup action ├── Download Tests Artifacts ← (from Build) └── Run Tests ``` To achieve fine-grained build->test dependency, instead of using `matrix strategy` in single build (or single test) job, the main ci.yml statically defines the each config of the build and test job. e.g. `build-windows-debug-cl-x86_64-gpu` and `test-windows-debug-cl-x86_64-gpu` are a pair of the build-test job for the windows/debug/ci config. Closes: https://github.com/shader-slang/slang/issues/6728 --------- Co-authored-by: slangbot <ellieh+slangbot@nvidia.com> Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
* Add WASM platform support to release workflow (#8264)David A Roberts2025-08-25
| | | | | | | | | | | This is a first pass at adding WASM builds to releases. ~~I haven't tested the outputs yet but it appears to build successfully in my fork at least.~~ Edit: Made a fake release in my fork for testing, seems to be working well for my use case at least: https://github.com/davidar/slang/releases/tag/v2025.999 Fixes #8207
* Restrict the release tag name to a pattern the build script expects (#8027)Jay Kwak2025-08-01
| | | | | Previously there were tag name `vulkan` and it was causing build errors. The cmake build script currently expect the name to be in a pattern of `v2025.1` which starts with `v` and followed by numbers.
* remove sccache due to the instability (#7484)Gangzheng Tong2025-06-19
|
* Disable Link-Time-Optimization by default (#7345)Jay Kwak2025-06-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Disable Link-Time-Optimization by default LTO was requested for the release package a while ago. When we added it, LTO was enabled by default although it was needed only for the release packages. Later we found that the Release build cannot be incrementally recompiled when LTO is enabled. It sometimes works fine, but it required full recompilation when it doesn't work. We added a new CMake option, `SLANG_ENABLE_RELEASE_LTO`, to disable it for developers. But many Slang developers don't know the option exists. I was going to update the document, CONTRIBUTING.md, but I thought it will be better to change the default behavior. * Fix a compiler warning treated as an error on linux A padding variable was uninitialized, which is fine, but the compiler was complaining about it. * Fix other gcc error for uninitialized variable * Fix more compile warning treated as error * Fix compiler warning from gcc 11 It appears that this is a valid warning that the `delete this` is done on an offset 8 when the class uses multiple inheritance. The compiler warning is following: ``` In file included from /home/runner/work/slang/slang/source/core/slang-memory-file-system.h:5, from /home/runner/work/slang/slang/tools/slang-unit-test/unit-test-module-ptr.cpp:3: In destructor ‘virtual Slang::ComBaseObject::~ComBaseObject()’, inlined from ‘uint32_t Slang::ComBaseObject::_releaseImpl()’ at /home/runner/work/slang/slang/source/core/slang-com-object.h:49:16, inlined from ‘virtual uint32_t Slang::MemoryFileSystem::release()’ at /home/runner/work/slang/slang/source/core/slang-memory-file-system.h:34:5: /home/runner/work/slang/slang/source/core/slang-com-object.h:33:31: error: ‘void operator delete(void*, std::size_t)’ called on pointer ‘<unknown>’ with nonzero offset 8 [-Werror=free-nonheap-object] 33 | virtual ~ComBaseObject() {} | ^ In destructor ‘virtual Slang::ComBaseObject::~ComBaseObject()’, inlined from ‘uint32_t Slang::ComBaseObject::_releaseImpl()’ at /home/runner/work/slang/slang/source/core/slang-com-object.h:49:16, inlined from ‘virtual uint32_t Slang::MemoryFileSystem::release()’ at /home/runner/work/slang/slang/source/core/slang-memory-file-system.h:34:5, inlined from ‘Slang::ComPtr<T>::~ComPtr() [with T = ISlangMutableFileSystem]’ at /home/runner/work/slang/slang/include/slang-com-ptr.h:113:34, inlined from ‘void _modulePtr_impl(UnitTestContext*)’ at /home/runner/work/slang/slang/tools/slang-unit-test/unit-test-module-ptr.cpp:92:1: /home/runner/work/slang/slang/source/core/slang-com-object.h:33:31: error: ‘void operator delete(void*, std::size_t)’ called on pointer ‘<unknown>’ with nonzero offset 8 [-Werror=free-nonheap-object] 33 | virtual ~ComBaseObject() {} | ^ /home/runner/work/slang/slang/tools/slang-unit-test/unit-test-module-ptr.cpp: In function ‘void _modulePtr_impl(UnitTestContext*)’: /home/runner/work/slang/slang/tools/slang-unit-test/unit-test-module-ptr.cpp:36:69: note: returned from ‘void* operator new(std::size_t)’ 36 | ComPtr<ISlangMutableFileSystem>(new Slang::MemoryFileSystem()); | ^ ``` The problem is on the fact that `ComBaseObject` is not the first in the multiple inheritance: ``` class MemoryFileSystem : public ISlangMutableFileSystem, public ComBaseObject { public: // ISlangUnknown SLANG_COM_BASE_IUNKNOWN_ALL ``` It should be: ``` class MemoryFileSystem : public ComBaseObject, public ISlangMutableFileSystem ``` The chain of ComObject release is little complicated and it is easy to make a mistake. Here is summary with details, 1. `release()` is declared as a pure-virtual in ISlangUnknown, which is one of the base classes of `ISlangMutableFileSystem`. ``` struct ISlangUnknown { virtual SLANG_NO_THROW uint32_t SLANG_MCALL release() = 0; ``` 2. `release()` is implemented with the macro `SLANG_COM_BASE_IUNKNOWN_RELEASE`. ``` SLANG_NO_THROW uint32_t SLANG_MCALL release() SLANG_OVERRIDE \ { \ return _releaseImpl(); \ } inline uint32_t ComBaseObject::_releaseImpl() { // Check there is a ref count to avoid underflow SLANG_ASSERT(m_refCount != 0); const uint32_t count = --m_refCount; if (count == 0) { delete this; } return count; } ``` 3. The instance of `MemoryFileSystem` is handled by ComPtr. And `ComPtr::~ComPtr()` calls the `release()`. ``` ComPtr<ISlangMutableFileSystem> memoryFileSystem = ComPtr<ISlangMutableFileSystem>(new Slang::MemoryFileSystem()); SLANG_FORCE_INLINE ~ComPtr() { if (m_ptr) ((Ptr)m_ptr)->release(); } ``` 4. When `delete this` is called, because ComBaseObject is not the first in the multiple inheritance, `this` is 8 byte off from the actual instance address. A fix for this is to change the order of the inheritance and make ComBaseObject to be the first in the order.
* Update ubuntu runners to use 22.04 (#7142)amey asgaonkar2025-05-29
| | | | | | | * Update ubuntu runners to use 22.04 - Use ubuntu-22.04 runners instead of latest - Leverage glibc-2.35 for release pkg - delete centos/glibc2.17 release workflow yaml
* Update the MacOS signing to use Khronos (#7157)Gangzheng Tong2025-05-19
|
* Use the latest Ubuntu version not specific old version (#6825)Jay Kwak2025-04-15
| | | | * Use the latest Ubuntu version not specific old version
* fix trimming of "v" from version string (#6605)Paradox842025-03-15
| | | | | | | | Current releases are removing "v" from "vulkan-sdk-1.4.309.0" when they were supposed to remove it from something like "v1.2.4" https://github.com/shader-slang/slang/releases/tag/vulkan-sdk-1.4.309.0 Fixed it so it only removes "v", if next character is a number Co-authored-by: Yong He <yonghe@outlook.com>
* Fix release CI. (#6492)Yong He2025-02-27
| | | | | | | | | | | * Fix release CI. * fix. * format code --------- Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
* Fix CI settings. (#6491)Yong He2025-02-27
| | | | | | | | | | | * fix ci. * fix. * format code --------- Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
* Include slang-glsl-module.dll in releases, for precompiled glsl module. (#6239)Yong He2025-01-31
| | | | | | | | | | | * Distribute slang-glsl-module.bin in release packages. * Fix. * fix2. * Build glsl modlue into a dll. * Notarize glsl-modue.dylib
* Emit debug info for Release builds (#5783)Ellie Hermaszewska2024-12-06
| | | | | | | | | | | * Remove unnecessary warnings on windows * Correctly set debug flags on gcc * Emit debug info for Release builds * Perform LTO for relwithdebinfo builds * Release from release builds not relwithdebinfo
* Split debug info for all targets (#5732)Ellie Hermaszewska2024-12-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | * Split debug info for all targets Work towards https://github.com/shader-slang/slang/issues/5724 * release separate debug info Closes https://github.com/shader-slang/slang/issues/5724 * Add split debug info support for MacOS * Add SLANG_ENABLE_SPLIT_DEBUG_INFO option * Sign and package debug info on MacOS * Set --build-id where available * Correct debug info installing * Keep cpack macos signing workaround * Neaten cmake * Disable sccache if building split debug info on Windows * Only repack necessary files on MacOS releases
* Set prerelease and draft correctly for releases with draft in the tag (#5763)Ellie Hermaszewska2024-12-05
|
* Update workflow YML files for renamed files (#5688)Jay Kwak2024-11-27
| | | | | | | | Recently we renamed a few files and directories and they should be reflected on the workflow YAML files. - LICENCE is a typo of LICENSE. - We recently created a new "LICENSES/" - CONTRIBUTION.md was renamed to CONTRIBUTING.md Closes #5686
* Enable core module embedding by default in CMake. (#5644)Kanashimia2024-11-22
| | | | | | It seems that release workflows were unexpectedly broken when STDLIB was renamed to CORE_MODULE. Changed the option default because I think it just makes more sense. Removed explicit calls to enable it. Fixed docs.
* ci: Update `actions/checkout` to always use v4 (#5634)Bruce Mitchener2024-11-21
| | | | | | CI was using a mix of version 3 and 4. Version 3 results in a warning within the GitHub Actions UI as it was using a version of NodeJS that is deprecated within the GitHub Actions infrastructure.
* fix release script (#5459)Ellie Hermaszewska2024-10-30
|
* format yaml and json (#5428)Ellie Hermaszewska2024-10-30
| | | | | * format yaml and json * format shell scripts
* Put debug symbols in releases (#5370)Ellie Hermaszewska2024-10-29
|
* Overhaul docgen tool and setup CI to generate stdlib reference. (#5232)Yong He2024-10-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | * Overhaul docgen tool and setup CI to generate stdlib reference. * Fix build error. * Write parsed doc for all decls. * fix. * fix callout. * Fix. * Fix comment. * Fix. * Delete obsolete doc tests. * Fix. * Categorize functions and types. * Fix CI. * Update comments.
* Disable wgpu on linux (#5186)Simon Kallweit2024-09-30
| | | | | | | | | * remove setting CMAKE_SYSTEM_PROCESSOR we will need a proper toolchain file to setup cross-compilation * disable slang-rhi webgpu backend on linux this is a temporary fix for allowing the release workflow to run
* export CMAKE_SYSTEM_PROCESSOR for cross compilation builds (#5171)Simon Kallweit2024-09-27
|
* Draft: integrate slang-rhi (#4970)Simon Kallweit2024-08-30
| | | | | | | | | | | | | | | | | | | | | * add slang-rhi submodule * refactor render-test to use slang-rhi and remove OpenGL support * remove -vk -glsl tests * remove gl test * disable failing test * allow recursive submodules in github actions * update slang-rhi * update slang-rhi --------- Co-authored-by: Yong He <yonghe@outlook.com>
* Allow creating draft releases from tags containing "draft" (#4896)Ellie Hermaszewska2024-08-21
| | | | | * Allow creating draft releases from tags containing "draft" * make draft releases prereleases too
* Don't trigger CI on doc changes. (#4736)Yong He2024-07-25
|
* Fix release configuration for macOS. (#4629)Yong He2024-07-13
|
* Make ci scripts more robust (#4608)Ellie Hermaszewska2024-07-10
| | | | | | | | | * Remove syntax error in release script * Make ci scripts more robust * Remove lib copying * Add bin directory to RPATH
* revert release script change. (#4607)Yong He2024-07-10
|
* release script: copy lib to bin. (#4605)Yong He2024-07-10
|
* Fix release script. (#4604)Yong He2024-07-10
| | | | | * Fix release script. * Macos release - sign binaries.
* Another fix in macos release script. (#4603)Yong He2024-07-10
| | | | | * Another fix in macos release script. * Fix.
* Delete unused build scripts. (#4601)Yong He2024-07-10
| | | | | * Fix macos release script. * Delete shell scripts
* Cope with bsd coreutils on osx in release script (#4597)Ellie Hermaszewska2024-07-11
|
* A couple of small fixes to cmake releases (#4596)Ellie Hermaszewska2024-07-11
| | | | | | | * Correct windows file uploading * Include slang-llvm.so in releases * Neaten job names
* WIP Drop Premake (#3703)Ellie Hermaszewska2024-07-10
* Remove premake lua * Remove premake generated vs project * remove deps file * Remove premake driving bat files * Full test matrix under CMake * Remove premake based ci workflows * Wiggle CI * remove cmake from ci name * find frameworks correctly on osx * remove cmake from ci name * Cope with sccache not being available * cmake based falcor tests * ci wobble * only install ninja if necessary * more appropriate cache name * Remove premake from build instructions * Add some docs on ci setup * remove premake from regression tests * remove premake from perf test * Set SLANGC_PATH * ci wobble * bump slang-binaries * ci wobble * Bump spirv tools * dont use timestamp in cache * remote debug code * cache key wobble * Install sccache after building llvm * Do not build llvm tools * ci wobble * ci wobble * ci wobble * ci wobble * ci wobble * Tests spirv via glsl in ci * Define SLANG_ENABLE_XLIB=1 * osx builds on aarch64 * ci wobble * ci wobble * ci wobble * ci wobble * ci wobble * ci wobble * package documentation and metadata with cmake * ci wobble * Split hlsl double intrinsic tests * ci wobble * Correct type for double log10 Fixes https://github.com/shader-slang/slang/issues/4549 * remove working test from expected failures * add broken test to expected failures * smaller build for falcor tests * ci wobble * A few exclusions in ci * wip, release script * Enable examples in ci * neaten release script * Correct building docs * Only use xlib vulkan when slang_enable_xlib is true * bump slang-llvm version * Remove toolchain file use * Bump slang-llvm preset version * slash direction * Improve build directions * Add msvc cross build documentation * Disable old release files * Smaller set of releases for test * Allow not building llvm * simplify release matrix * Cross releases * formatting * formatting * ci wiggle * ci wiggle * cleaner * neaten * ci wobble * formatting * Install cross tools on linux * do not clean build dir * neaten ci * neaten ci * neaten ci * remove unused release workflow files * Build llvm on some platforms * neaten ci * notarize on osx * s/x64/x86_64 * ci wobble * Embed stdlib for release build * wobble ci * wobble ci * s/x64/x86_64 * ci wobble * ci wobble * ci wobble * vk-gl-cts on cmake * neaten ci * neaten ci * bump cache action version * Cope with windows being weird about case * old glibc version * old glibc version * Correct action file * Keep cache hot on main branch * separate small script for old glibc releases * ci wobble * ci wobble * Run cmake outside of docker * only sign on releases * Revert "Run cmake outside of docker" This reverts commit a58aaba939a4aa35fe70962fd60d9512b143592f. * python3 on build image * less parallel * ci wobble * ci wobble * ci wobble * newer git * ci wobble * ci wobble * Use newer docker image * Use newer docker image * sccache wobble * permissions issue * neaten * build llvm in ci * build llvm in ci * Remove linux clang build in ci * Only install crossbuild tools on non-aarch64 systems * neaten ci.yml * Correct github matrix * Simplify github matrix * ci wobble * Disable broken test See https://github.com/shader-slang/slang/issues/4589 * ci wobble * Neater slang-llvm archive filename * Neater path for uploading artifacts * Neater ci names * Use Windows SDK 10.0.19041.0 in cmake builds