https://github.com/shader-slang/slang
Raw File
Tip revision: 60f4c2be5ede3f20e19dc243b0e95a81f8cb6dc5 authored by Yong He on 29 September 2022, 00:58:13 UTC
update vs files
Tip revision: 60f4c2b
release-windows.yml
on:
  push:
    # Sequence of patterns matched against refs/tags
    tags:
    - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10

name: Windows Release

jobs:
  build:
    name: Upload Release Asset - Windows
    runs-on: windows-latest
    strategy:
      matrix:
        configuration: ['Release']
        platform: ['Win32', 'x64', 'aarch64']
    steps:
      - uses: actions/checkout@v2.3.4
        with:
          submodules: 'true'
          fetch-depth: '0'
      - name: setup-msbuild
        uses: microsoft/setup-msbuild@v1
        
      - name: msbuild (x64 tools)
        # If we are building for ARM64 we want to build x64 first, so that all generated files are produced
        if: ${{ matrix.platform == 'aarch64' }}
        run: |
          .\premake.bat vs2019 --arch=x64 --ignore-deps=slang-llvm,slang-glslang --no-progress=true
          MSBuild.exe slang.sln -v:m -m -property:Configuration=Release -property:Platform=x64 -property:WindowsTargetPlatformVersion=10.0.19041.0
          Remove-Item .\bin\* -Recurse -Force
          .\premake.bat vs2019 --arch=${{matrix.platform}} --ignore-deps=slang-llvm,slang-glslang --no-progress=true --skip-source-generation=true --deploy-slang-llvm=false --deploy-slang-glslang=false
      # Do the premake for the actual target, downloading dependencies if necessary    
      - name: premake 
        if: ${{ matrix.platform != 'aarch64' }}
        run:
          .\premake.bat vs2019 --enable-embed-stdlib=true --arch=${{matrix.platform}} --deps=true --no-progress=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 "aarch64")
          {
            $slangDeployPlatform = "win-arm64"
          }
          elseif ("${{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 "$binArchive" 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\*\*\slang-llvm.dll
          7z a "$binArchive" bin\*\*\gfx.dll
          7z a "$binArchive" bin\*\*\gfx.lib
          7z a "$binArchive" bin\*\*\slangc.exe
          7z a "$binArchive" bin\*\*\slangd.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 }}
back to top