-
Notifications
You must be signed in to change notification settings - Fork 98
/
azure-pipelines.yml
150 lines (116 loc) · 3.73 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
149
150
trigger:
- master
pr:
- master
variables:
solution: 'src/ShaderTools.sln'
buildConfiguration: 'Release'
jobs:
- job: VS
strategy:
matrix:
VS2022:
imageName: 'windows-2022'
vsVersion: VS2022
pool:
vmImage: $(imageName)
steps:
- task: NuGetToolInstaller@0
displayName: 'Install NuGet'
inputs:
versionSpec: '5.8.0'
- task: DotNetCoreCLI@2
displayName: 'Restore NuGet Packages (dotnet)'
inputs:
command: restore
projects: '$(solution)'
- task: NuGetCommand@2
displayName: 'Restore NuGet Packages (nuget)'
inputs:
restoreSolution: '$(solution)'
- task: VSBuild@1
displayName: 'Build'
inputs:
solution: '$(solution)'
configuration: $(buildConfiguration)
- task: DotNetCoreCLI@2
displayName: Test
inputs:
command: test
projects: |
**/*Tests/*.csproj
!src/ShaderTools.Editor.VisualStudio.Tests/ShaderTools.Editor.VisualStudio.Tests.csproj
arguments: '--configuration $(buildConfiguration)'
- task: PublishPipelineArtifact@1
displayName: Publish Artifact
condition: and(succeeded(), eq(variables['vsVersion'], 'VS2022'))
inputs:
artifactName: VisualStudio
path: 'src/ShaderTools.Editor.VisualStudio/bin/$(buildConfiguration)/ShaderTools.Editor.VisualStudio.vsix'
- job: VSCode_Build
strategy:
matrix:
Windows:
imageName: 'windows-2019'
rid: win-x64
macOS:
imageName: 'macOS-latest'
rid: osx-x64
Linux:
imageName: 'ubuntu-latest'
rid: linux-x64
pool:
vmImage: $(imageName)
steps:
- task: UseDotNet@2
displayName: 'Use .NET Core SDK'
inputs:
version: 6.0.x
- powershell: New-Item -ItemType Directory -Path src/ShaderTools.LanguageServer/build/$(rid)
- script: dotnet publish --runtime $(rid) --output build/$(rid) --configuration $(buildConfiguration)
displayName: 'Build Language Server'
workingDirectory: 'src/ShaderTools.LanguageServer'
- task: PublishPipelineArtifact@1
displayName: Publish Artifact
inputs:
artifactName: LanguageServer-$(rid)
path: 'src/ShaderTools.LanguageServer/build/$(rid)'
- job: VSCode_Create_Package
dependsOn: 'VSCode_Build'
pool:
vmImage: 'ubuntu-latest'
steps:
- task: DownloadPipelineArtifact@2
displayName: 'Download Windows LSP binary'
inputs:
artifactName: LanguageServer-win-x64
targetPath: 'src/ShaderTools.VSCode/bin/win-x64'
- task: DownloadPipelineArtifact@2
displayName: 'Download macOS LSP binary'
inputs:
artifactName: LanguageServer-osx-x64
targetPath: 'src/ShaderTools.VSCode/bin/osx-x64'
- task: DownloadPipelineArtifact@2
displayName: 'Download Linux LSP binary'
inputs:
artifactName: LanguageServer-linux-x64
targetPath: 'src/ShaderTools.VSCode/bin/linux-x64'
- script: chmod +x src/ShaderTools.VSCode/bin/osx-x64/ShaderTools.LanguageServer
displayName: 'Set permissions on macOS LSP binary'
- script: chmod +x src/ShaderTools.VSCode/bin/linux-x64/ShaderTools.LanguageServer
displayName: 'Set permissions on Linux LSP binary'
- script: npm ci
displayName: npm ci
workingDirectory: 'src/ShaderTools.VSCode'
- script: sudo npm install -g vsce
displayName: 'Install vsce'
workingDirectory: 'src/ShaderTools.VSCode'
- powershell: New-Item -ItemType Directory -Path src/ShaderTools.VSCode/package
- script: vsce package -o package/HlslToolsVSCode.vsix
displayName: 'Create VSIX'
workingDirectory: 'src/ShaderTools.VSCode'
- task: PublishPipelineArtifact@1
displayName: Publish Artifact
inputs:
artifactName: VSCode
targetPath: 'src/ShaderTools.VSCode/package/HlslToolsVSCode.vsix'