Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Azure Pipelines Release: Fixing Pool Definitions & Improving Pipeline Inputs #390

Merged
merged 3 commits into from
Jun 14, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
221 changes: 116 additions & 105 deletions .github/workflows/release-azure-pipelines.yml
Original file line number Diff line number Diff line change
@@ -1,107 +1,118 @@
# This pipeline will be triggered manually.
variables:
- name: tags
value: "nonproduction"
readonly: true

trigger: none

pr: none

resources:
repositories:
- repository: CustomPipelineTemplates
type: git
name: 1ESPipelineTemplates/OfficePipelineTemplates
ref: refs/tags/release

extends:
template: v1/Office.Unofficial.PipelineTemplate.yml@CustomPipelineTemplates
parameters:
pool:
name: Azure-Pipelines-1ESPT-ExDShared
image: windows-latest
os: windows
stages:
- stage: validate
displayName: Validate
jobs:
- job: validate
pool:
name: Azure-Pipelines-1ESPT-ExDShared
image: ubuntu-latest
os: linux
displayName: Validate
steps:
- checkout: self
- task: Bash@3
inputs:
targetType: inline
script: |
echo $(version) | python ./bin/version.py

- stage: build
displayName: Build
jobs:
- job: build
strategy:
matrix:
x64-windows:
poolName: Azure-Pipelines-1ESPT-ExDShared
image: windows-latest
os: windows
runtime: win10-x64
x64-mac:
poolName: Azure Pipelines
image: macOS-latest
os: macOS
runtime: osx-x64
arm-mac:
poolName: Azure Pipelines
image: macOS-latest
os: macOS
runtime: osx-arm64
pool:
name: $(poolName)
image: $(image)
os: $(os)
parameters:
- name: version
type: string
- name: prerelease
displayName: Prerelease?
type: boolean
default: true
- name: buildConfigs
type: object
default:
- pool:
name: Azure-Pipelines-1ESPT-ExDShared
image: windows-latest
os: windows
runtime: win10-x64
- pool:
name: Azure Pipelines
image: macOS-latest
os: macOS
runtime: osx-x64
- pool:
name: Azure Pipelines
image: macOS-latest
os: macOS
runtime: osx-arm64

variables:
- name: tags
value: "nonproduction"
readonly: true

trigger: none

pr: none

resources:
repositories:
- repository: CustomPipelineTemplates
type: git
name: 1ESPipelineTemplates/OfficePipelineTemplates
ref: refs/tags/release

extends:
template: v1/Office.Unofficial.PipelineTemplate.yml@CustomPipelineTemplates
parameters:
pool:
name: Azure-Pipelines-1ESPT-ExDShared
image: ubuntu-latest
os: linux
sdl:
sourceAnalysisPool:
name: Azure-Pipelines-1ESPT-ExDShared
image: windows-latest
os: windows
stages:
- stage: validate
displayName: Validate
jobs:
- job: validate
displayName: Validate
steps:
- checkout: self
- task: Bash@3
inputs:
targetType: inline
script: |
echo ${{ parameters.version }} | python ./bin/version.py

- stage: build
displayName: Build
steps:
- checkout: self
- task: UseDotNet@2
displayName: Use .NET Core sdk 6.x
inputs:
version: 6.x

- task: NuGetToolInstaller@0
displayName: Use NuGet 6.x
inputs:
versionSpec: 6.x

- task: DotNetCoreCLI@2
displayName: Install dependencies
inputs:
command: restore
feedsToUse: select
vstsFeed: $(vstsFeedId)
includeNuGetOrg: false
arguments: --runtime $(runtime)

- task: DotNetCoreCLI@2
displayName: Test
inputs:
command: test
arguments: --configuration release

- task: DotNetCoreCLI@2
displayName: Build artifacts
inputs:
command: publish
projects: src/AzureAuth/AzureAuth.csproj
arguments: -p:Version=$(version) --configuration release --self-contained true --runtime $(runtime) --output dist/$(runtime)

templateContext:
outputs:
- output: pipelineArtifact
path: dist/$(runtime)
artifact: azureauth-$(version)-$(runtime)
jobs:
- ${{ each config in parameters.buildConfigs }}:
- job: build_${{ replace(config.runtime,'-', '_') }}
displayName: Building for ${{ config.runtime }} on ${{ config.pool.name }}
pool:
name: ${{ config.pool.name }}
image: ${{ config.pool.image }}
os: ${{ config.pool.os }}
steps:
- checkout: self
- task: UseDotNet@2
displayName: Use .NET Core sdk 6.x
inputs:
version: 6.x

- task: NuGetToolInstaller@0
displayName: Use NuGet 6.x
inputs:
versionSpec: 6.x

- task: DotNetCoreCLI@2
displayName: Install dependencies
inputs:
command: restore
feedsToUse: select
vstsFeed: $(vstsFeedId)
includeNuGetOrg: false
arguments: --runtime ${{ config.runtime }}

- task: DotNetCoreCLI@2
displayName: Test
inputs:
command: test
arguments: --configuration release

- task: DotNetCoreCLI@2
displayName: Build artifacts
inputs:
command: publish
projects: src/AzureAuth/AzureAuth.csproj
arguments: -p:Version=${{ parameters.version }} --configuration release --self-contained true --runtime ${{ config.runtime }} --output dist/${{ config.runtime }}

templateContext:
outputs:
- output: pipelineArtifact
path: dist/${{ config.runtime }}
artifact: azureauth-${{ parameters.version }}-${{ config.runtime }}
Loading