Skip to content

Opt, 添加github ci配置 #3

Opt, 添加github ci配置

Opt, 添加github ci配置 #3

Workflow file for this run

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