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

[3.x] Migrate to build yaml file #8006

Merged
merged 4 commits into from
Nov 3, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
249 changes: 249 additions & 0 deletions .azure/pipelines/build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,249 @@
trigger:
branches:
include:
- main
- 3.x

schedules:
- cron: "0 0 * * *"
displayName: Daily midnight build
branches:
include:
- main
- 3.x

parameters:
- name: build_configuration
displayName: Build configuration
type: string
default: Release
values:
- Release
- Debug
- name: version_prefix
displayName: Version prefix
type: string
default: 7.0
- name: version_suffix
displayName: Version suffix
type: string
default: ci.$(Build.BuildNumber)
- name: codesign
displayName: Enable code signing
type: boolean
default: false
- name: skip_test
displayName: Skip tests
type: boolean
default: false
- name: frameworks
displayName: Frameworks
type: object
default:
- 6.0.x,net6.0
- 5.0.x,net5.0
- 3.1.x,netcoreapp3.1
- name: tests_categories
displayName: Test categories
type: object
default:
- BVT
- SlowBVT
- Functional

variables:
build_flags: ' /m /v:m'
solution: 'Orleans.sln'
codesign_runtime: '2.1.x'
${{ if eq(variables['System.TeamProject'], 'GitHub - PR Builds') }}:
pool_name: 'orleans-pr-hosted-pool'
official_build: false
${{ else }}:
pool_name: 'orleans-build-hosted-pool'
official_build: true

jobs:

# Build, sign dlls, build nuget pkgs, then sign them
- job: Build
pool: $(pool_name)
displayName: Build and create NuGet packages
steps:
- checkout: self
- task: UseDotNet@2
displayName: 'Use .NET Core sdk'
inputs:
useGlobalJson: true
- task: DotNetCoreCLI@2
displayName: Build
inputs:
command: build
arguments: '$(build_flags) /bl:${{parameters.build_configuration}}-Build.binlog /p:Configuration=${{parameters.build_configuration}} $(solution)'
env:
VersionPrefix: ${{parameters.version_prefix}}
VersionSuffix: ${{parameters.version_suffix}}
OfficialBuild: $(official_build)
# DLL code signing
- ${{ if eq(parameters.codesign, true) }}:
- task: UseDotNet@2
displayName: 'Codesign: Use .NET Core'
inputs:
packageType: runtime
version: $(codesign_runtime)
- task: CopyFiles@2
displayName: 'Codesign: Copy Files for signing'
inputs:
SourceFolder: '$(build.sourcesdirectory)'
Contents: |
src/**/bin/${{parameters.build_configuration}}/**/Orleans*.dll
src/**/bin/${{parameters.build_configuration}}/**/Microsoft.Orleans.*.dll
!src/BootstrapBuild/**
TargetFolder: '$(build.artifactstagingdirectory)\codesign'
CleanTargetFolder: true
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
displayName: 'Codesign: ESRP CodeSigning'
inputs:
ConnectedServiceName: 'CodeSign Service (NuGet)'
FolderPath: '$(build.artifactstagingdirectory)\codesign'
Pattern: '*'
signConfigType: inlineSignParams
inlineOperation: |
[
{
"keyCode": "CP-230012",
"operationSetCode": "SigntoolSign",
"parameters": [
{
"parameterName": "OpusName",
"parameterValue": "Microsoft"
},
{
"parameterName": "OpusInfo",
"parameterValue": "http://www.microsoft.com"
},
{
"parameterName": "FileDigest",
"parameterValue": "/fd \"SHA256\""
},
{
"parameterName": "PageHash",
"parameterValue": "/NPH"
},
{
"parameterName": "TimeStamp",
"parameterValue": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
}
],
"toolName": "sign",
"toolVersion": "1.0"
},
{
"keyCode": "CP-230012",
"operationSetCode": "SigntoolVerify",
"parameters": [ ],
"toolName": "sign",
"toolVersion": "1.0"
}
]
SessionTimeout: 180
VerboseLogin: true
- task: CopyFiles@2
displayName: 'Codesign: Copy Signed Files Back'
inputs:
SourceFolder: '$(build.artifactstagingdirectory)\codesign'
Contents: '**\*'
TargetFolder: '$(build.sourcesdirectory)'
OverWrite: true
# End DLL code signing
- task: CmdLine@2
displayName: Pack
inputs:
script: 'dotnet pack --no-build --no-restore $(build_flags) /bl:${{parameters.build_configuration}}-Pack.binlog /p:Configuration=${{parameters.build_configuration}} $(solution)'
env:
VersionSuffix: ${{parameters.version_suffix}}
OfficialBuild: $(official_build)
# NuGet code signing
- ${{ if eq(parameters.codesign, true) }}:
- task: UseDotNet@2
displayName: 'Codesign: Use .NET Core'
inputs:
packageType: runtime
version: $(codesign_runtime)
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
displayName: 'Codesign: ESRP CodeSigning (nuget)'
inputs:
ConnectedServiceName: 'CodeSign Service (NuGet)'
FolderPath: '$(build.sourcesdirectory)/Artifacts/${{parameters.build_configuration}}'
Pattern: '*.nupkg'
signConfigType: inlineSignParams
inlineOperation: |
[
{
"keyCode": "CP-401405",
"operationSetCode": "NuGetSign",
"parameters": [],
"toolName": "sign",
"toolVersion": "1.0"
},
{
"keyCode": "CP-401405",
"operationSetCode": "NuGetVerify",
"parameters": [ ],
"toolName": "sign",
"toolVersion": "1.0"
}
]
SessionTimeout: 180
VerboseLogin: true
# End NuGet code signing
- ${{ if ne(variables['System.TeamProject'], 'GitHub - PR Builds') }}:
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: Nuget Packages'
inputs:
PathtoPublish: '$(build.sourcesdirectory)/Artifacts/${{parameters.build_configuration}}'
ArtifactName: nuget

# Tests
- ${{ if eq(parameters.skip_test, false) }}:
- ${{ each category in parameters.tests_categories }}:
- ${{ each framework in parameters.frameworks }}:
- job:
displayName: ${{category}} on ${{split(framework, ',')[1]}}
timeoutInMinutes: 120
pool: $(pool_name)
dependsOn: Build
steps:
- task: UseDotNet@2
inputs:
version: ${{split(framework, ',')[0]}}
- checkout: self
- task: UseDotNet@2
inputs:
useGlobalJson: true
displayName: 'Use .NET Core sdk'
- task: DotNetCoreCLI@2
displayName: Build
inputs:
command: build
arguments: '$(build_flags) /bl:${{parameters.build_configuration}}-Build.binlog /p:Configuration=${{parameters.build_configuration}} $(solution)'
- ${{ if ne(variables['System.TeamProject'], 'GitHub - PR Builds') }}:
- task: DownloadSecureFile@1
name: secretFile
displayName: 'Download secrets'
inputs:
secureFile: 'OrleansTestSecrets.json'
- task: UseDotNet@2
inputs:
version: ${{split(framework, ',')[0]}}
displayName: 'Use .NET Core sdk'
- task: DotNetCoreCLI@2
displayName: Test
inputs:
command: 'test'
testRunTitle: ${{category}} on${{split(framework, ',')[1]}}
arguments: --no-build --framework ${{split(framework, ',')[1]}} --configuration "${{parameters.build_configuration}}" --filter Category=${{category}} -- -parallel none -noshadow
${{ if ne(variables['System.TeamProject'], 'GitHub - PR Builds') }}:
env:
ORLEANS_SECRETFILE: $(secretFile.secureFilePath)


81 changes: 0 additions & 81 deletions .azure/pipelines/pr.yaml

This file was deleted.

4 changes: 2 additions & 2 deletions test/NetCore.Tests/NetCore.Tests.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<TargetFrameworks>$(TestTargetFrameworks)</TargetFrameworks>
</PropertyGroup>

<ItemGroup>
Expand Down