on: push: # Sequence of patterns matched against refs/tags tags: - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10 name: Upload Release Asset - Windows jobs: build: name: Upload Release Asset - Windows runs-on: windows-latest strategy: matrix: configuration: ['Release'] platform: ['Win32', 'x64'] steps: - uses: actions/checkout@v2.3.4 with: submodules: 'true' fetch-depth: '0' - name: setup-msbuild uses: microsoft/setup-msbuild@v1 - name: premake run: .\premake.bat vs2017 --enable-embed-stdlib=true - name: msbuild run: MSBuild.exe slang.sln -v:m -m -property:Configuration=${{matrix.configuration}} -property:Platform=${{matrix.platform}} -property:WindowsTargetPlatformVersion=10.0.19041.0 - name: archive id: archive run: | echo "achiving files..." if ("${{matrix.platform}}" -eq "x64") { $slangDeployPlatform = "win64" } else { $slangDeployPlatform = "win32" } $tagName = & git describe --tags $slangVersion = $tagName.TrimStart("v") $binArchive = "slang-$slangVersion-$slangDeployPlatform.zip" echo "name=SLANG_BINARY_ARCHIVE::$binArchive" echo "::set-output name=SLANG_WIN32_BINARY_ARCHIVE::$binArchive" 7z a "$binArchive" slang.h 7z a "$binArchive" slang-com-helper.h 7z a "$binArchive" slang-com-ptr.h 7z a "$binArchive" slang-tag-version.h 7z a "$srcArchive" slang-gfx.h 7z a "$binArchive" prelude\*.h 7z a "$binArchive" bin\*\*\slang.dll 7z a "$binArchive" bin\*\*\slang.lib 7z a "$binArchive" bin\*\*\slang-glslang.dll 7z a "$binArchive" bin\*\*\gfx.dll 7z a "$binArchive" bin\*\*\slangc.exe 7z a "$binArchive" docs\*.md $srcArchive = "slang-$slangVersion-source.zip" echo "::set-output name=SLANG_SOURCE_ARCHIVE::$srcArchive" 7z a "$srcArchive" slang.h 7z a "$srcArchive" slang-com-helper.h 7z a "$srcArchive" slang-com-ptr.h 7z a "$srcArchive" slang-tag-version.h 7z a "$srcArchive" slang-gfx.h 7z a "$srcArchive" prelude\*.h 7z a "$srcArchive" source\*\*.h 7z a "$srcArchive" source\*\*.cpp 7z a "$srcArchive" docs\*.md 7z a "$srcArchive" README.md 7z a "$srcArchive" LICENSE - name: Check outputs shell: pwsh run: echo "binary is ${{ steps.archive.outputs.SLANG_WIN32_BINARY_ARCHIVE }}" - name: UploadBinary uses: softprops/action-gh-release@v1 with: files: | ${{ steps.archive.outputs.SLANG_WIN32_BINARY_ARCHIVE }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: UploadSource uses: softprops/action-gh-release@v1 if: ${{ matrix.platform == 'x64' }} with: files: ${{ steps.archive.outputs.SLANG_SOURCE_ARCHIVE }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}