-
Notifications
You must be signed in to change notification settings - Fork 52
/
azure-pipelines-aws-agent.yml
157 lines (154 loc) · 11.3 KB
/
azure-pipelines-aws-agent.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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
name: swift
variables:
Install.Directory: $(Build.StagingDirectory)\Library\Developer\Toolchains\unknown-Asserts-development.xctoolchain\usr
jobs:
- job: windows
# NOTE(compnerd) this is an open source project built on hosted machines, so
# this time out is actually 6 hours. Sadly, this is not very long given the
# complexity of this build and the speed of the hosted machines
timeoutInMinutes: 0
pool:
name: Default
steps:
- script: |
git config --global user.name 'root'
git config --global user.email 'root@compnerd.org'
git clone --quiet --depth 1 --single-branch https://github.com/apple/swift-cmark cmark
git clone --quiet --depth 1 --single-branch https://github.com/apple/swift-llvm llvm
# NOTE(compnerd) this cannot be a shallow clone since we need to go back in time to around
# when the branch was cut
git clone --quiet --single-branch https://github.com/llvm-mirror/lld lld
# NOTE(compnerd) This corresponds to SVN r350253 which is the commit closes to SVN r350374
# where the current stable branch was cut.
git -C lld checkout 997d79fe31b96246ca4ef54cb082a8ec0d756ede
git clone --quiet --depth 1 --single-branch https://github.com/apple/swift-lldb lldb
git clone --quiet --depth 1 --single-branch https://github.com/apple/swift-clang clang
git clone --config core.autocrlf=false --config core.symlinks=true --quiet --depth 1 --single-branch https://github.com/apple/swift swift
git clone --quiet --depth 1 --single-branch https://github.com/apple/swift-corelibs-libdispatch swift-corelibs-libdispatch
displayName: 'Fetch Sources'
- powershell: |
(New-Object System.Net.WebClient).DownloadFile("http://download.icu-project.org/files/icu4c/63.1/icu4c-63_1-Win64-MSVC2017.zip", "$(Build.StagingDirectory)\\icu4c-63_1-Win64-MSVC2017.zip")
Add-Type -A System.IO.Compression.FileSystem
[IO.Compression.ZipFile]::ExtractToDirectory("$(Build.StagingDirectory)\\icu4C-63_1-Win64-MSVC2017.zip", "$(Build.StagingDirectory)\\icu-63.1")
displayName: 'Fetch ICU'
- task: BatchScript@1
inputs:
filename: C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\Common7\\Tools\\VsDevCmd.bat
arguments: -no_logo -arch=x64
modifyEnvironment: true
displayName: 'vcvarsall.bat'
- task: UsePythonVersion@0
inputs:
versionSpec: '2.7.x'
- task: CMake@1
inputs:
workingDirectory: $(Build.StagingDirectory)\llvm
cmakeArgs: $(Build.SourcesDirectory)\llvm -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl -DCMAKE_INSTALL_PREFIX=$(Install.Directory) -DLLVM_DEFAULT_TARGET_TRIPLE=x86_64-unknown-windows-msvc -DLLVM_ENABLE_PDB=YES -DLLVM_ENABLE_ASSERTIONS=YES -C$(Build.SourcesDirectory)\cmake\caches\Windows-x86_64.cmake -C$(Build.SourcesDirectory)\cmake\caches\org.compnerd.dt.cmake
displayName: 'Configure LLVM/clang'
- task: CMake@1
inputs:
cmakeArgs: --build $(Build.StagingDirectory)\llvm
displayName: 'Build LLVM/clang'
- task: CMake@1
inputs:
cmakeArgs: --build $(Build.StagingDirectory)\llvm --target install
displayName: 'Install LLVM/clang'
- script: |
echo ##vso[task.setvariable variable=PATH]%PATH%;$(Install.Directory)\bin
displayName: 'Update PATH'
- task: CMake@1
inputs:
workingDirectory: $(Build.StagingDirectory)\cmark
cmakeArgs: $(Build.SourcesDirectory)\cmark -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl -C$(Build.SourcesDirectory)\cmake\caches\Windows-x86_64.cmake
displayName: 'Configure CMark'
- task: CMake@1
inputs:
cmakeArgs: --build $(Build.StagingDirectory)\cmark
displayName: 'Build CMark'
- script: |
copy /y "$(Build.SourcesDirectory)\swift\stdlib\public\Platform\ucrt.modulemap" "%UniversalCRTSdkDir%\Include\%UCRTVersion%\ucrt\module.modulemap"
copy /y "$(Build.SourcesDirectory)\swift\stdlib\public\Platform\visualc.modulemap" "%VCToolsInstallDir%\include\module.modulemap"
copy /y "$(Build.SourcesDirectory)\swift\stdlib\public\Platform\visualc.apinotes" "%VCToolsInstallDir%\include\visualc.apinotes"
copy /y "$(Build.SourcesDirectory)\swift\stdlib\public\Platform\winsdk.modulemap" "%UniversalCRTSdkDir%\Include\%UCRTVersion%\um\module.modulemap"
displayName: 'Configure SDK'
- task: CMake@1
inputs:
workingDirectory: $(Build.StagingDirectory)\swift
cmakeArgs: $(Build.SourcesDirectory)\swift -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl -DCMAKE_INSTALL_PREFIX=$(Install.Directory) -DClang_DIR=$(Build.StagingDirectory)\llvm\lib\cmake\clang -DSWIFT_PATH_TO_CMARK_BUILD=$(Build.StagingDirectory)\cmark -DSWIFT_PATH_TO_CMARK_SOURCE=$(Build.SourcesDirectory)\cmark -DSWIFT_PATH_TO_LIBDISPATCH_SOURCE=$(Build.SourcesDirectory)\swift-corelibs-libdispatch -DLLVM_DIR=$(Build.StagingDirectory)\llvm\lib\cmake\llvm -DSWIFT_INCLUDE_DOCS=NO -DSWIFT_WINDOWS_x86_64_ICU_UC_INCLUDE=$(Build.StagingDirectory)\icu-63.1\include\unicode -DSWIFT_WINDOWS_x86_64_ICU_UC=$(Build.StagingDirectory)\icu-63.1\lib64\icuuc.lib -DSWIFT_WINDOWS_x86_64_ICU_I18N_INCLUDE=$(Build.StagingDirectory)\icu-63.1\include -DSWIFT_WINDOWS_x86_64_ICU_I18N=$(Build.StagingDirectory)\icu-63.1\lib64\icuin.lib -DSWIFT_BUILD_STATIC_STDLIB=NO -DSWIFT_BUILD_STATIC_SDK_OVERLAY=NO -DLLVM_INSTALL_TOOLCHAIN_ONLY=YES -DSWIFT_BUILD_SOURCEKIT=YES -DSWIFT_ENABLE_SOURCEKIT_TESTS=NO -DSWIFT_INSTALL_COMPONENTS="autolink-driver;compiler;clang-resource-dir-symlink;stdlib;sdk-overlay;editor-integration;tools;sourcekit-inproc;swift-remote-mirror;swift-remote-mirror-headers" -DSWIFT_PARALLEL_LINK_JOBS=8 -C$(Build.SourcesDirectory)\cmake\caches\Windows-x86_64.cmake
displayName: 'Configure swift'
- task: CMake@1
inputs:
cmakeArgs: --build $(Build.StagingDirectory)\swift
displayName: 'Build swift'
- task: CMake@1
inputs:
cmakeArgs: --build $(Build.StagingDirectory)\swift --target install
displayName: 'Install swift'
- task: CMake@1
inputs:
workingDirectory: $(Build.StagingDirectory)\lldb
cmakeArgs: $(Build.SourcesDirectory)\lldb -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_INSTALL_PREFIX=$(Install.Directory) -DLLDB_PATH_TO_CMARK_SOURCE=$(Build.SourcesDirectory)/cmark -DLLDB_PATH_TO_CLANG_SOURCE=$(Build.SourcesDirectory)/clang -DLLDB_PATH_TO_LLVM_SOURCE=$(Build.SourcesDirectory)/llvm -DLLDB_PATH_TO_SWIFT_SOURCE=$(Build.SourcesDirectory)/swift -DLLDB_PATH_TO_CMARK_BUILD=$(Build.StagingDirectory)/cmark -DLLDB_PATH_TO_CLANG_BUILD=$(Build.StagingDirectory)/llvm -DLLDB_PATH_TO_LLVM_BUILD=$(Build.StagingDirectory)/llvm -DLLDB_PATH_TO_SWIFT_BUILD=$(Build.StagingDirectory)/swift -DLLVM_ENABLE_ASSERTIONS=YES -C$(Build.SourcesDirectory)\cmake\caches\Windows-x86_64.cmake
displayName: 'Configure lldb'
- task: CMake@1
inputs:
cmakeArgs: --build $(Build.StagingDirectory)\lldb
displayName: 'Build lldb'
- task: CMake@1
inputs:
cmakeArgs: --build $(Build.StagingDirectory)\lldb --target install
displayName: 'Install lldb'
# - task: CMake@1
# inputs:
# workingDirectory: $(Build.StagingDirectory)\swift-corelibs-libdispatch
# cmakeArgs: $(Build.SourcesDirectory)\swift-corelibs-libdispatch -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_SWIFT_COMPILER=$(Install.Directory)\\bin\\swiftc.exe -DSwift_DIR=$(Build.StagingDirectory)\\swift\\lib\\cmake\\swift -DCMAKE_INSTALL_PREFIX=$(Install.Directory) -DBUILD_SHARED_LIBS=YES -DENABLE_TESTING=NO -DCMAKE_C_COMPILER_TARGET=x86_64-unknown-windows-msvc -DENABLE_SWIFT=YES -C$(Build.SourcesDirectory)\cmake\caches\Windows-x86_64.cmake
# displayName: 'Configure libdispatch'
# - task: CMake@1
# inputs:
# cmakeArgs: --build $(Build.StagingDirectory)\swift-corelibs-libdispatch
# displayName: 'Build libdispatch'
# - task: CMake@1
# inputs:
# cmakeArgs: --build $(Build.StagingDirectory)\swift-corelibs-libdispatch --target install
# displayName: 'Install libdispatch'
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: $(Build.StagingDirectory)\Library
artifactName: toolchain
- task: MSBuild@1
inputs:
solution: $(Build.SourcesDirectory)\installer\windows-toolchain.wixproj
msbuildArguments: /p:RunWixToolsOutOfProc=true -p:INCLUDE_DEBUG_INFO=INCLUDE_DEBUG_INFO -p:LLVM_BUILD_DIR=$(Build.StagingDirectory)\llvm -p:CLANG_BUILD_DIR=$(Build.StagingDirectory)\llvm -p:LLD_BUILD_DIR=$(Build.StagingDirectory)\llvm -p:LLDB_BUILD_DIR=$(Build.StagingDirectory)\lldb -p:SWIFT_BUILD_DIR=$(Build.StagingDirectory)\swift -p:SWIFT_SOURCE_DIR=$(Build.SourcesDirectory)\swift
displayName: "Build windows-toolchain-amd64.msi"
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: $(Build.SourcesDirectory)\installer\build\windows-toolchain-amd64.msi
artifactName: windows-toolchain-amd64.msi
displayName: "Publish windows-toolchain-amd64.msi"
- task: MSBuild@1
inputs:
solution: $(Build.SourcesDirectory)\installer\windows-runtime.wixproj
msbuildArguments: /p:RunWixToolsOutOfProc=true -p:INCLUDE_DEBUG_INFO=INCLUDE_DEBUG_INFO -p:LLVM_BUILD_DIR=$(Build.StagingDirectory)\llvm -p:CLANG_BUILD_DIR=$(Build.StagingDirectory)\llvm -p:LLDB_BUILD_DIR=$(Build.StagingDirectory)\lldb -p:SWIFT_BUILD_DIR=$(Build.StagingDirectory)\swift -p:SWIFT_SOURCE_DIR=$(Build.SourcesDirectory)\swift
displayName: "Build windows-runtime-amd64.msi"
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: $(Build.SourcesDirectory)\installer\build\windows-runtime-amd64.msi
artifactName: windows-runtime-amd64.msi
displayName: "Publish windows-runtime-amd64.msi"
- task: MSBuild@1
inputs:
solution: $(Build.SourcesDirectory)\installer\windows-sdk.wixproj
msbuildArguments: /p:RunWixToolsOutOfProc=true -p:INCLUDE_DEBUG_INFO=INCLUDE_DEBUG_INFO -p:LLVM_BUILD_DIR=$(Build.StagingDirectory)\llvm -p:CLANG_BUILD_DIR=$(Build.StagingDirectory)\llvm -p:LLDB_BUILD_DIR=$(Build.StagingDirectory)\lldb -p:SWIFT_BUILD_DIR=$(Build.StagingDirectory)\swift -p:SWIFT_SOURCE_DIR=$(Build.SourcesDirectory)\swift
displayName: "Build windows-sdk.msi"
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: $(Build.SourcesDirectory)\installer\build\windows-sdk.msi
artifactName: windows-sdk.msi
displayName: "Publish windows-sdk.msi"
- script: |
echo ##vso[task.setvariable variable=PATH]$(Build.StagingDirectory)\icu-63.1\bin64;$(Install.Directory)\bin;$(Build.StagingDirectory)\swift\libdispatch-prefix\bin;%PATH%;%ProgramFiles%\Git\usr\bin
displayName: 'Update PATH'
- task: CMake@1
inputs:
cmakeArgs: --build $(Build.StagingDirectory)\swift --target check-swift-validation
displayName: 'test swift'
continueOnError: true