Skip to content

Commit 3f420c2

Browse files
committed
chore(CI): Release via AzDO
1 parent 48dd8cc commit 3f420c2

File tree

1 file changed

+96
-0
lines changed

1 file changed

+96
-0
lines changed

azure-pipelines.yml

+96
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,17 @@
1+
trigger:
2+
branches:
3+
include: ['master']
4+
tags:
5+
include: ['v*']
6+
pr:
7+
branches:
8+
include:
9+
- master
10+
paths:
11+
exclude:
12+
- "*.md"
13+
- "docs/*"
14+
- "LICENSE-*"
115
schedules:
216
- cron: "12 12 12 * *"
317
displayName: Monthly Build
@@ -128,6 +142,88 @@ stages:
128142
- template: azure/coverage.yml@templates
129143
parameters:
130144
codecov_token: $(CODECOV_TOKEN_SECRET)
145+
- stage: release
146+
displayName: Release
147+
dependsOn: test
148+
condition: startsWith(variables['Build.SourceBranch'], 'refs/tags/')
149+
jobs:
150+
- job:
151+
strategy:
152+
matrix:
153+
windows:
154+
imageName: ${{ variables.windows_vm }}
155+
target: 'x86_64-pc-windows-msvc'
156+
crate_name: cobalt
157+
mac:
158+
imageName: ${{ variables.mac_vm }}
159+
target: 'x86_64-apple-darwin'
160+
crate_name: cobalt
161+
linux:
162+
imageName: ${{ variables.linux_vm }}
163+
target: 'x86_64-unknown-linux-gnu'
164+
crate_name: cobalt
165+
pool:
166+
vmImage: $(imageName)
167+
steps:
168+
- template: azure/install-rust.yml@templates
169+
- script: |
170+
cargo rustc --target $(TARGET) --release --bin $(CRATE_NAME) -- -C lto
171+
displayName: Build
172+
- task: CopyFiles@2
173+
displayName: Stage assets
174+
condition: ne( variables['Agent.OS'], 'Windows_NT' )
175+
inputs:
176+
sourceFolder: '$(Build.SourcesDirectory)/target/$(TARGET)/release'
177+
contents: $(crate_name)
178+
targetFolder: '$(Build.BinariesDirectory)/'
179+
- task: CopyFiles@2
180+
displayName: Stage assets on Windows
181+
condition: eq( variables['Agent.OS'], 'Windows_NT' )
182+
inputs:
183+
sourceFolder: '$(Build.SourcesDirectory)/target/$(TARGET)/release'
184+
contents: $(crate_name).exe
185+
targetFolder: '$(Build.BinariesDirectory)/'
186+
- task: ArchiveFiles@2
187+
displayName: Tarball assets
188+
condition: ne( variables['Agent.OS'], 'Windows_NT' )
189+
inputs:
190+
rootFolderOrFile: '$(Build.BinariesDirectory)/$(crate_name)'
191+
archiveType: 'tar'
192+
tarCompression: 'gz'
193+
archiveFile: '$(Build.ArtifactStagingDirectory)/$(crate_name)-$(Build.SourceBranchName)-$(TARGET).tar.gz'
194+
- task: GithubRelease@0
195+
condition: ne( variables['Agent.OS'], 'Windows_NT' )
196+
inputs:
197+
gitHubConnection: 'cobalt-org'
198+
repositoryName: 'cobalt-org/cobalt.rs'
199+
action: 'edit'
200+
target: '$(build.sourceVersion)'
201+
tagSource: 'manual'
202+
tag: '$(Build.SourceBranchName)'
203+
assets: '$(Build.ArtifactStagingDirectory)/$(crate_name)-$(Build.SourceBranchName)-$(TARGET).tar.gz'
204+
title: '$(Build.SourceBranchName)'
205+
assetUploadMode: 'replace'
206+
addChangeLog: true
207+
- task: ArchiveFiles@2
208+
displayName: Zip assets
209+
condition: eq( variables['Agent.OS'], 'Windows_NT' )
210+
inputs:
211+
rootFolderOrFile: '$(Build.BinariesDirectory)/$(crate_name).exe'
212+
archiveType: 'zip'
213+
archiveFile: '$(Build.ArtifactStagingDirectory)/$(crate_name)-$(Build.SourceBranchName)-$(TARGET).zip'
214+
- task: GithubRelease@0
215+
condition: eq( variables['Agent.OS'], 'Windows_NT' )
216+
inputs:
217+
gitHubConnection: 'cobalt-org'
218+
repositoryName: 'cobalt-org/cobalt.rs'
219+
action: 'edit'
220+
target: '$(build.sourceVersion)'
221+
tagSource: 'manual'
222+
tag: '$(Build.SourceBranchName)'
223+
assets: '$(Build.ArtifactStagingDirectory)/$(crate_name)-$(Build.SourceBranchName)-$(TARGET).zip'
224+
title: '$(Build.SourceBranchName)'
225+
assetUploadMode: 'replace'
226+
addChangeLog: true
131227

132228
resources:
133229
repositories:

0 commit comments

Comments
 (0)