https://github.com/shader-slang/slang
Raw File
Tip revision: 627fc976bac5c2381dbace9c7925cb6a68b8de12 authored by Yong He on 01 October 2021, 02:48:47 UTC
Fix aarch64 build on github (#1957)
Tip revision: 627fc97
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: Upload Release Asset - Windows

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: premake
        run:
          .\premake.bat vs2017 --enable-embed-stdlib=true
      - name: msbuild (x64 tools)
        if: ${{ matrix.platform == 'aarch64' }}
        run:
          MSBuild.exe slang.sln -v:m -m -property:Configuration=Release -property:Platform=x64 -property:WindowsTargetPlatformVersion=10.0.19041.0
      - 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-aarch64"
          }
          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 "$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 }}
back to top