Skip to content

Commit 3f67e59

Browse files
张传菲vyloy
authored andcommitted
ci(gt): add ci for building on win
1 parent cc5e146 commit 3f67e59

File tree

1 file changed

+124
-1
lines changed

1 file changed

+124
-1
lines changed

.github/workflows/container.yml

Lines changed: 124 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,127 @@ env:
2121

2222
jobs:
2323

24+
build-windows:
25+
runs-on: windows-latest
26+
permissions:
27+
contents: read
28+
packages: write
29+
id-token: write
30+
31+
32+
steps:
33+
- name: Configure Environment
34+
shell: powershell
35+
run: |-
36+
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem' -Name 'LongPathsEnabled' -Value 1
37+
git config --system core.longpaths true
38+
39+
echo "--------------------Install Microsoft.UI.Xaml-------------------"
40+
$SourceUrl = "https://www.nuget.org/api/v2/package/Microsoft.UI.Xaml/2.7.3"
41+
$DestinationFile = ".\microsoft.ui.xaml.2.7.3.zip" # 保存到当前目录并保持.nupkg扩展名
42+
$ExtractDirectory = ".\uixaml"
43+
# 创建目标解压目录(如果不存在)
44+
if (!(Test-Path -Path $ExtractDirectory)) {
45+
New-Item -ItemType Directory -Path $ExtractDirectory | Out-Null
46+
}
47+
# 下载.nupkg文件
48+
Invoke-WebRequest -Uri $SourceUrl -OutFile $DestinationFile
49+
# 解压.nupkg文件到指定目录(PowerShell 5.0及以上版本支持)
50+
Expand-Archive -Path $DestinationFile -DestinationPath $ExtractDirectory
51+
Copy-Item -Path .\uixaml\tools\AppX\x64\Release\Microsoft.UI.Xaml.2.7.appx -Destination .
52+
Add-AppxPackage -Path .\Microsoft.UI.Xaml.2.7.appx
53+
54+
echo "------------------------Install vclibs--------------------------"
55+
Invoke-WebRequest -Uri 'https://aka.ms/Microsoft.VCLibs.x64.14.00.Desktop.appx' -OutFile '.\Microsoft.VCLibs.x64.14.00.Desktop.appx'
56+
Add-AppxPackage -Path .\Microsoft.VCLibs.x64.14.00.Desktop.appx
57+
58+
echo "---------------------Install winget------------------------"
59+
Invoke-WebRequest -Uri 'https://github.com/microsoft/winget-cli/releases/download/v1.6.3421/65f132d72c1d44518a19d1a9c3de8e1f_License1.xml' -OutFile '.\65f132d72c1d44518a19d1a9c3de8e1f_License1.xml'
60+
Invoke-WebRequest -Uri 'https://github.com/microsoft/winget-cli/releases/download/v1.6.3421/Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle' -OutFile '.\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle'
61+
Add-AppxPackage .\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle
62+
Add-AppxProvisionedPackage -Online -Package .\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle -LicensePath .\65f132d72c1d44518a19d1a9c3de8e1f_License1.xml
63+
64+
echo "---------------Install VisualStudio 2022---------------------- "
65+
winget install --source winget --id Microsoft.VisualStudio.2022.Community --override "--quiet --add Microsoft.VisualStudio.Component.CoreEditor --add Microsoft.VisualStudio.Workload.CoreEditor --add Microsoft.VisualStudio.Component.TypeScript.TSServer --add Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions --add Microsoft.VisualStudio.Component.JavaScript.TypeScript --add Microsoft.VisualStudio.Component.Roslyn.Compiler --add Microsoft.Component.MSBuild --add Microsoft.VisualStudio.Component.Roslyn.LanguageServices --add Microsoft.VisualStudio.Component.TextTemplating --add Microsoft.VisualStudio.Component.NuGet --add Microsoft.VisualStudio.Component.Debugger.JustInTime --add Component.Microsoft.VisualStudio.LiveShare.2022 --add Microsoft.VisualStudio.Component.IntelliCode --add Microsoft.VisualStudio.Component.VC.CoreIde --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 --add Microsoft.VisualStudio.Component.Graphics.Tools --add Microsoft.VisualStudio.Component.VC.DiagnosticTools --add Microsoft.VisualStudio.Component.Windows11SDK.22621 --add Microsoft.VisualStudio.Component.VC.ATL --add Microsoft.VisualStudio.Component.SecurityIssueAnalysis --add Microsoft.VisualStudio.Component.VC.ATLMFC --add Microsoft.VisualStudio.Component.VC.Modules.x86.x64 --add Component.IncredibuildMenu --add Component.Incredibuild --add Microsoft.VisualStudio.Component.VC.Redist.14.Latest --add Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core --add Microsoft.VisualStudio.Component.Windows11Sdk.WindowsPerformanceToolkit --add Microsoft.VisualStudio.Component.CppBuildInsights --add Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.CMake --add Microsoft.VisualStudio.Component.VC.CMake.Project --add Microsoft.VisualStudio.Component.VC.TestAdapterForBoostTest --add Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest --add Microsoft.VisualStudio.Component.VC.ASAN --add Microsoft.VisualStudio.Component.Vcpkg --add Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset --add Microsoft.VisualStudio.Component.VC.Llvm.Clang --add Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Llvm.Clang --add Microsoft.VisualStudio.Workload.NativeDesktop"
66+
winget install --source winget --id Microsoft.VisualStudio.2022.Community --override "--quiet --add Microsoft.VisualStudio.Component.CoreEditor --add Microsoft.VisualStudio.Workload.CoreEditor --add Microsoft.VisualStudio.Component.TypeScript.TSServer --add Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions --add Microsoft.VisualStudio.Component.JavaScript.TypeScript --add Microsoft.VisualStudio.Component.Roslyn.Compiler --add Microsoft.Component.MSBuild --add Microsoft.VisualStudio.Component.Roslyn.LanguageServices --add Microsoft.VisualStudio.Component.TextTemplating --add Microsoft.VisualStudio.Component.NuGet --add Microsoft.VisualStudio.Component.Debugger.JustInTime --add Component.Microsoft.VisualStudio.LiveShare.2022 --add Microsoft.VisualStudio.Component.IntelliCode --add Microsoft.VisualStudio.Component.VC.CoreIde --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 --add Microsoft.VisualStudio.Component.Graphics.Tools --add Microsoft.VisualStudio.Component.VC.DiagnosticTools --add Microsoft.VisualStudio.Component.Windows11SDK.22621 --add Microsoft.VisualStudio.Component.VC.ATL --add Microsoft.VisualStudio.Component.SecurityIssueAnalysis --add Microsoft.VisualStudio.Component.VC.ATLMFC --add Microsoft.VisualStudio.Component.VC.Modules.x86.x64 --add Component.IncredibuildMenu --add Component.Incredibuild --add Microsoft.VisualStudio.Component.VC.Redist.14.Latest --add Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core --add Microsoft.VisualStudio.Component.Windows11Sdk.WindowsPerformanceToolkit --add Microsoft.VisualStudio.Component.CppBuildInsights --add Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.CMake --add Microsoft.VisualStudio.Component.VC.CMake.Project --add Microsoft.VisualStudio.Component.VC.TestAdapterForBoostTest --add Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest --add Microsoft.VisualStudio.Component.VC.ASAN --add Microsoft.VisualStudio.Component.Vcpkg --add Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset --add Microsoft.VisualStudio.Component.VC.Llvm.Clang --add Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Llvm.Clang --add Microsoft.VisualStudio.Workload.NativeDesktop"
67+
68+
69+
echo "----------------------Install sdk 8-------------------------------"
70+
winget install --source winget --id Microsoft.DotNet.SDK.8
71+
72+
echo "----------------------Install DesktopRuntime.8--------------------------"
73+
winget install --source winget --id Microsoft.DotNet.DesktopRuntime.8
74+
75+
echo "---------------------Install cmake--------------------------"
76+
winget install --source winget --id Kitware.CMake -e
77+
78+
echo "--------------------Install Ninja-build.Ninja ---------------------------"
79+
winget install --source winget --id Ninja-build.Ninja
80+
81+
echo "--------------------Waiting Install VisualStudio 2022--------------------------------- "
82+
# 循环判断目录数量是否大于等于 14
83+
$targetDirectory = "C:\Program Files\Microsoft Visual Studio\2022\Community"
84+
while (!(Test-Path $targetDirectory)) {
85+
Write-Host "The directory does not exist, wait for 1 minute..."
86+
Start-Sleep -Seconds 60
87+
}
88+
while (((Get-ChildItem -Path $targetDirectory -Directory).Count -lt 14)) {
89+
Write-Host "The number of directories is less than 14, wait for 1 minute...."
90+
Start-Sleep -Seconds 60
91+
}
92+
Get-ChildItem -Path $targetDirectory
93+
Write-Host "-------------------------Visual Studio 2022 installation completed----------------------------"
94+
95+
96+
97+
98+
- uses: actions/checkout@v3
99+
with:
100+
submodules: recursive
101+
102+
103+
- name: Set up Go
104+
uses: actions/setup-go@v4
105+
with:
106+
go-version: 'stable'
107+
108+
109+
- name: Building Windows Package
110+
shell: pwsh
111+
run: |-
112+
Rename-Item -Path 'D:\a\gt\gt\libcs\dep\_google-webrtc\src\third_party\llvm-build\Release+Asserts.win' -NewName 'D:\a\gt\gt\libcs\dep\_google-webrtc\src\third_party\llvm-build\Release+Asserts'
113+
Get-ChildItem -Path 'D:\a\gt\gt\libcs\dep\_google-webrtc\src\third_party\llvm-build\'
114+
Get-ChildItem -Path 'D:\a\gt\gt\libcs\dep\_google-webrtc\src\third_party\llvm-build\Release+Asserts\'
115+
Invoke-WebRequest -Uri 'https://chrome-infra-packages.appspot.com/dl/gn/gn/windows-amd64/+/latest' -OutFile '.\gn-windows-amd64.zip'
116+
Expand-Archive -Path '.\gn-windows-amd64.zip' -DestinationPath 'C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja'
117+
Get-ChildItem -Path 'C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\'
118+
119+
echo "-----------------------Compilation package---------------------"
120+
& '.\build.ps1'
121+
122+
- name: Archive GT artifacts
123+
uses: actions/upload-artifact@v3
124+
with:
125+
name: gt-windows
126+
path: |
127+
release/*
128+
129+
24130
build-liunx:
25-
runs-on: ubuntu-latest
131+
runs-on: ubuntu-22.04
26132
permissions:
27133
contents: read
28134
packages: write
29135
id-token: write
30136

31137
steps:
138+
- name: clean-space
139+
run: |-
140+
sudo swapoff -a
141+
sudo rm -rf /swapfile /usr/share/dotnet /usr/local/lib/android /opt/ghc
142+
sudo apt clean
143+
sudo df -Th
144+
# steps:
32145
- uses: actions/checkout@v3
33146
with:
34147
submodules: recursive
@@ -50,6 +163,8 @@ jobs:
50163
name: gt-linux
51164
path: |
52165
release/*
166+
- name: clean-space
167+
run: sudo rm -rf /home/runner/work/gt/gt/libcs/dep
53168

54169
- name: Set up QEMU
55170
uses: docker/setup-qemu-action@v2
@@ -265,6 +380,7 @@ jobs:
265380
contents: read
266381
packages: write
267382
id-token: write
383+
268384

269385

270386
steps:
@@ -313,6 +429,13 @@ jobs:
313429
contents: read
314430
packages: write
315431
id-token: write
432+
433+
# steps:
434+
# - name: space
435+
# shell: bash
436+
# run: |-
437+
# sudo df -h
438+
316439

317440

318441
steps:

0 commit comments

Comments
 (0)