summaryrefslogtreecommitdiffstats
path: root/.github/workflows/release-windows.yml
blob: ac0d90ee635e634965263eb7c6ca9c6aa5c53b04 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
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 "$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\*\*\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" 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 }}