|
| 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-*" |
1 | 15 | schedules:
|
2 | 16 | - cron: "12 12 12 * *"
|
3 | 17 | displayName: Monthly Build
|
@@ -128,6 +142,88 @@ stages:
|
128 | 142 | - template: azure/coverage.yml@templates
|
129 | 143 | parameters:
|
130 | 144 | 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 |
131 | 227 |
|
132 | 228 | resources:
|
133 | 229 | repositories:
|
|
0 commit comments