-
Notifications
You must be signed in to change notification settings - Fork 51
/
Copy pathazure-pipelines.yml
148 lines (124 loc) · 4.67 KB
/
azure-pipelines.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
name: $(Year:yy)$(DayOfYear)$(Rev:r)
trigger:
branches:
include:
- master
paths:
exclude:
- doc
- readme.md
variables:
azureNuGet: https://pkgs.dev.azure.com/saucecontrol/PhotoSauce/_packaging/photosauce_ci/nuget/v3/index.json
vcpkgNuGet: https://pkgs.dev.azure.com/saucecontrol/PhotoSauce/_packaging/photosauce_vcpkg/nuget/v3/index.json
jobs:
- job: native
timeoutInMinutes: 0
variables:
VCPKG_BINARY_SOURCES: clear;nuget,$(vcpkgNuGet),readwrite
VCPKG_PSLIBS: giflib libheif libjxl libwebp psjpeg pspng
strategy:
matrix:
linux-arm64:
imageName: ubuntu-22.04
setupScript: |
sudo apt update
sudo apt install -y g++-12-aarch64-linux-gnu nasm
modules/vcpkg/bootstrap-vcpkg.sh
buildScript: modules/vcpkg/vcpkg install $(VCPKG_PSLIBS) --triplet=linux-arm64 @build/vcpkg/response
linux-x64:
imageName: ubuntu-22.04
setupScript: |
sudo apt update
sudo apt install -y nasm
modules/vcpkg/bootstrap-vcpkg.sh
buildScript: modules/vcpkg/vcpkg install $(VCPKG_PSLIBS) --triplet=linux-x64 @build/vcpkg/response
win-arm64:
imageName: windows-latest
setupScript: modules\vcpkg\bootstrap-vcpkg.bat
buildScript: modules\vcpkg\vcpkg install $(VCPKG_PSLIBS) --triplet=win-arm64 @build\vcpkg\response
win-x64:
imageName: windows-latest
setupScript: modules\vcpkg\bootstrap-vcpkg.bat
buildScript: modules\vcpkg\vcpkg install $(VCPKG_PSLIBS) --triplet=win-x64 @build\vcpkg\response
win-x86:
imageName: windows-latest
setupScript: modules\vcpkg\bootstrap-vcpkg.bat
buildScript: modules\vcpkg\vcpkg install $(VCPKG_PSLIBS) --triplet=win-x86 @build\vcpkg\response
pool:
vmImage: $(imageName)
steps:
- checkout: self
submodules: true
fetchDepth: 1
fetchTags: false
- task: NuGetAuthenticate@1
- script: $(setupScript)
displayName: Setup
- script: $(buildScript)
displayName: Build Native
- publish: out/vcpkg/buildtrees
displayName: Publish Build Logs
artifact: logs.$(System.JobIdentifier)
condition: failed()
- publish: out/vcpkg/install
displayName: Publish Native Binaries
artifact: $(System.JobIdentifier)
- job: managed
dependsOn: native
pool:
vmImage: ubuntu-latest
steps:
- checkout: self
submodules: true
fetchDepth: 1
fetchTags: false
- download: current
displayName: Download Native Binaries
- task: CopyFiles@2
displayName: Copy Linux Arm64 Binaries
inputs:
sourceFolder: $(Pipeline.Workspace)/native.linux-arm64
targetFolder: out/vcpkg/install
- task: CopyFiles@2
displayName: Copy Linux x64 Binaries
inputs:
sourceFolder: $(Pipeline.Workspace)/native.linux-x64
targetFolder: out/vcpkg/install
- task: CopyFiles@2
displayName: Copy Windows Arm64 Binaries
inputs:
sourceFolder: $(Pipeline.Workspace)/native.win-arm64
targetFolder: out/vcpkg/install
- task: CopyFiles@2
displayName: Copy Windows x64 Binaries
inputs:
sourceFolder: $(Pipeline.Workspace)/native.win-x64
targetFolder: out/vcpkg/install
- task: CopyFiles@2
displayName: Copy Windows x86 Binaries
inputs:
sourceFolder: $(Pipeline.Workspace)/native.win-x86
targetFolder: out/vcpkg/install
- task: UseDotNet@2
displayName: Ensure 9.0 SDK
inputs:
version: 9.0.x
includePreviewVersions: true
- script: |
dotnet build -c Dist --version-suffix ci$(Build.BuildNumber) src/MagicScaler
dotnet build -c Dist --version-suffix ci$(Build.BuildNumber) --no-dependencies src/WebRSize
dotnet build -c Dist --version-suffix ci$(Build.BuildNumber) --no-dependencies src/NativeCodecs/Giflib
dotnet build -c Dist --version-suffix ci$(Build.BuildNumber) --no-dependencies src/NativeCodecs/Libjxl
dotnet build -c Dist --version-suffix ci$(Build.BuildNumber) --no-dependencies src/NativeCodecs/Libpng
dotnet build -c Dist --version-suffix ci$(Build.BuildNumber) --no-dependencies src/NativeCodecs/Libheif
dotnet build -c Dist --version-suffix ci$(Build.BuildNumber) --no-dependencies src/NativeCodecs/Libjpeg
dotnet build -c Dist --version-suffix ci$(Build.BuildNumber) --no-dependencies src/NativeCodecs/Libwebp
displayName: Build Managed
- publish: out/bin
displayName: Publish Managed Binaries
artifact: managed
- task: NuGetAuthenticate@1
condition: ne(variables['Build.Reason'], 'PullRequest')
- script: dotnet nuget push --source $(azureNuGet) --api-key AzureArtifacts out/nuget/*.nupkg
displayName: Push Packages
condition: ne(variables['Build.Reason'], 'PullRequest')