Skip to content

Commit 5fc314d

Browse files
committed
swift-atomics: add CI pipeline
[skip ci]
1 parent bb01867 commit 5fc314d

File tree

1 file changed

+116
-0
lines changed

1 file changed

+116
-0
lines changed

swift-atomcis.yml

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
# swift-atomics
2+
3+
pool:
4+
vmImage: windows-latest
5+
6+
resources:
7+
repositories:
8+
- repository: apple/swift-atomics
9+
type: github
10+
name: apple/swift-atomics
11+
endpoint: GitHub
12+
13+
pr:
14+
paths:
15+
include:
16+
- .ci/swift-atomics.yml
17+
18+
trigger:
19+
branches:
20+
include:
21+
- master
22+
23+
variables:
24+
toolchain.directory: $(Pipeline.Workspace)/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain
25+
sdk.directory: $(Pipeline.Workspace)/Library/Developer/Platforms/Windows.platform/Developer/SDKs/Windows.sdk
26+
developer.directory: $(Pipeline.Workspace)/Library/Developer/Platforms/Windows.platform/Developer/Library
27+
28+
steps:
29+
- script: |
30+
git config --global --add core.autocrlf false
31+
git config --global --add core.symlinks true
32+
displayName: configure git
33+
34+
- checkout: apple/swift-atomics
35+
displayName: checkout apple/swift-atomics
36+
37+
- script: |
38+
git config --global user.name builder
39+
git config --global user.email [email protected]
40+
41+
call :ApplyPatches "%SWIFT_ATOMICS_PR%" .
42+
goto :eof
43+
44+
:ApplyPatches
45+
setlocal
46+
set list=%~1
47+
set repository=%~2
48+
for /F "tokens=1*" %%P in ("%list%") do (
49+
git -C %repository% fetch origin pull/%%P/merge
50+
git -C %repository% merge FETCH_HEAD
51+
if not "%%Q" == "" call :ApplyPatches "%%Q" %repository%
52+
)
53+
displayName: apply patches
54+
55+
- task: DownloadPipelineArtifact@2
56+
inputs:
57+
buildType: 'specific'
58+
project: '3133d6ab-80a8-4996-ac4f-03df25cd3224'
59+
definition: '7'
60+
buildVersionToDownload: 'latest'
61+
allowPartiallySucceededBuilds: true
62+
artifactName: 'toolchain-windows-x64'
63+
targetPath: '$(Pipeline.Workspace)'
64+
65+
- task: DownloadPipelineArtifact@2
66+
inputs:
67+
buildType: 'specific'
68+
project: '3133d6ab-80a8-4996-ac4f-03df25cd3224'
69+
definition: '7'
70+
buildVersionToDownload: 'latest'
71+
allowPartiallySucceededBuilds: true
72+
artifactName: 'sdk-windows-x64'
73+
targetPath: '$(Pipeline.Workspace)'
74+
75+
- task: BatchScript@1
76+
displayName: VsDevCmd
77+
inputs:
78+
filename: C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/Common7/Tools/VsDevCmd.bat
79+
arguments: -no_logo -arch=x64 -host_arch=x64
80+
modifyEnvironment: true
81+
82+
- script: |
83+
curl -L "https://raw.githubusercontent.com/apple/swift/main/stdlib/public/Platform/ucrt.modulemap" -o "%UniversalCRTSdkDir%\Include\%UCRTVersion%\ucrt\module.modulemap"
84+
curl -L "https://raw.githubusercontent.com/apple/swift/main/stdlib/public/Platform/visualc.modulemap" -o "%VCToolsInstallDir%\include\module.modulemap"
85+
curl -L "https://raw.githubusercontent.com/apple/swift/main/stdlib/public/Platform/visualc.apinotes" -o "%VCToolsInstallDir%\include\visualc.apinotes"
86+
curl -L "https://raw.githubusercontent.com/apple/swift/main/stdlib/public/Platform/winsdk.modulemap" -o "%UniversalCRTSdkDir%\Include\%UCRTVersion%\um\module.modulemap"
87+
displayName: Configure SDK
88+
89+
- script: |
90+
echo ##vso[task.prependpath]$(toolchain.directory)/usr/bin
91+
displayName: Update PATH
92+
93+
- task: CMake@1
94+
displayName: configure swift-atomics
95+
inputs:
96+
cmakeArgs:
97+
-B $(Build.BinariesDirectory)/swift-atomics
98+
-D BUILD_SHARED_LIBS=YES
99+
-D CMAKE_BUILD_TYPE=Release
100+
-D CMAKE_INSTALL_PREFIX=$(Build.StagingDirectory)/swift-atomics-windows-x64/Library/swift-atomics/usr
101+
-D CMake_Swift_FLAGS="-sdk $(sdk.directory) -resource-dir $(sdk.directory)/usr/lib/swift -I$(sdk.directory)/usr/lib/swift -L$(sdk.directory)/usr/lib/swift/windows -I$(developer.directory)/XCTest-development/usr/lib/swift/windows/x86_64 -L$(developer.directory)/XCTest-development/usr/lib/swift/windows"
102+
-G Ninja
103+
-S $(Build.SourcesDirectory)
104+
105+
- task: CMake@1
106+
displayName: build swift-atomics
107+
inputs:
108+
cmakeArgs: --build $(Build.BinariesDirectory)/swift-atomics
109+
110+
- task: CMake@1
111+
displayName: install swift-atomics
112+
inputs:
113+
cmakeArgs: --build $(Build.BinariesDirectory)/swift-atomics --target install
114+
115+
- publish: $(Build.StagingDirectory)/swift-atomics-windows-x64
116+
artifact: swift-atomics-windows-x64

0 commit comments

Comments
 (0)