forked from sonyps5201314/msvcr14x
-
Notifications
You must be signed in to change notification settings - Fork 0
112 lines (86 loc) · 3.46 KB
/
Build.yml
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
name: Build
on: [push, pull_request]
jobs:
Build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: 恢复编译产物
id: BinCache
uses: actions/cache@v4
with:
path: |
Release\**\*.*
x64\Release\**\*.*
key: BinCache_${{github.sha}}
- name: 初始化
working-directory: ${{env.GITHUB_WORKSPACE}}
run: |
$ProgramFiles = ${env:ProgramFiles(x86)}
if (-not $ProgramFiles)
{
$ProgramFiles = $env:ProgramFiles
}
$BuiltInVsWhereExe = "$ProgramFiles\Microsoft Visual Studio\Installer\vswhere.exe"
if (-not (Test-Path $BuiltInVsWhereExe))
{
throw "找不到vswhere.exe!"
}
Write-Output $BuiltInVsWhereExe
$LatestVisualStudioRoot = & $BuiltInVsWhereExe -latest -prerelease -property installationPath
if (-not (Test-Path $LatestVisualStudioRoot))
{
throw "找不到 VisualStudioRoot!"
}
echo "LatestVisualStudioRoot=$LatestVisualStudioRoot" >> $env:GITHUB_ENV
$MSBuildBinPath="$LatestVisualStudioRoot\MSBuild\Current\Bin"
if (-not (Test-Path $MSBuildBinPath))
{
$installationVersion = & $BuiltInVsWhereExe -latest -prerelease -property installationVersion
$majorVersion = "$installationVersion".Split('.')[0]
$MSBuildBinPath="$LatestVisualStudioRoot\MSBuild\$majorVersion.0\Bin"
}
if (-not (Test-Path $MSBuildBinPath))
{
throw "找不到 MSBuildBinPath!"
}
echo "MSBuildBinPath=$MSBuildBinPath" >> $env:GITHUB_ENV
if($env:GITHUB_REF.StartsWith("refs/tags/v", "CurrentCultureIgnoreCase"))
{
$BuildVersion = $env:GITHUB_REF.Remove(0, 11);
echo "BuildVersion=$BuildVersion" >> $env:GITHUB_ENV
}
- name: 执行编译
if: steps.BinCache.outputs.cache-hit != 'true'
working-directory: ${{env.GITHUB_WORKSPACE}}
shell: cmd
run: |
& git submodule update --depth 1 --init --recursive
set Path=%GITHUB_WORKSPACE%\Bin;${{env.MSBuildBinPath}};%Path%
set LatestVisualStudioRoot=${{env.LatestVisualStudioRoot}}
msbuild /m msvcr14x.sln /t:Build /p:Configuration=Release;Platform=x86
if %ErrorLevel% NEQ 0 exit /b %ErrorLevel%
msbuild /m msvcr14x.sln /t:Build /p:Configuration=AnsiRelease;Platform=x86
if %ErrorLevel% NEQ 0 exit /b %ErrorLevel%
msbuild /m msvcr14x.sln /t:Build /p:Configuration=Release;Platform=x64
if %ErrorLevel% NEQ 0 exit /b %ErrorLevel%
msbuild /m msvcr14x.sln /t:Build /p:Configuration=AnsiRelease;Platform=x64
if %ErrorLevel% NEQ 0 exit /b %ErrorLevel%
- name: 文件打包
working-directory: ${{env.GITHUB_WORKSPACE}}
shell: cmd
run: |
7z a -tzip VC-LTL.Redist.zip Release x64\Release
- uses: xresloader/upload-to-github-release@v1
if: contains(github.ref, 'tags/')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
file: "VC-LTL.Redist.zip"
overwrite: true
tags: true
draft: false
- uses: actions/upload-artifact@v4
with:
path: |
*.zip