Skip to content

Commit cf08f6b

Browse files
authored
1ES migration - first draft (#75)
1 parent 2e1b7a0 commit cf08f6b

File tree

2 files changed

+103
-0
lines changed

2 files changed

+103
-0
lines changed

eng/ci/official-build.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
variables:
2+
- template: ci/variables/cfs.yml@eng
3+
4+
trigger:
5+
batch: true
6+
branches:
7+
include:
8+
- main
9+
- dajusto/test-build
10+
11+
# CI only, does not trigger on PRs.
12+
pr: none
13+
14+
resources:
15+
repositories:
16+
- repository: 1es
17+
type: git
18+
name: 1ESPipelineTemplates/1ESPipelineTemplates
19+
ref: refs/tags/release
20+
- repository: eng
21+
type: git
22+
name: engineering
23+
ref: refs/tags/release
24+
25+
extends:
26+
template: v1/1ES.Official.PipelineTemplate.yml@1es
27+
parameters:
28+
pool:
29+
name: 1es-pool-azfunc
30+
image: 1es-windows-2022
31+
os: windows
32+
33+
stages:
34+
- stage: BuildAndSign
35+
dependsOn: []
36+
jobs:
37+
- template: /eng/templates/build.yml@self

eng/templates/build.yml

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
jobs:
2+
- job: Build
3+
4+
templateContext:
5+
outputs:
6+
- output: pipelineArtifact
7+
path: $(build.artifactStagingDirectory)
8+
artifact: drop
9+
sbomBuildDropPath: $(System.DefaultWorkingDirectory)
10+
sbomPackageName: 'Durable Functions PowerShell SBOM'
11+
12+
variables:
13+
SimulateReleaseBuild: true
14+
artifactName: 'azure-functions-durable-powershell-$(Build.SourceVersion)'
15+
16+
steps:
17+
- pwsh: |
18+
$simulateReleaseBuild = $null
19+
Write-Host "SimulateReleaseBuild set to $env:SimulateReleaseBuild"
20+
if (-not([bool]::TryParse($env:SimulateReleaseBuild, [ref] $simulateReleaseBuild)))
21+
{
22+
throw "SimulateReleaseBuild can only be set to true or false."
23+
}
24+
25+
$isReleaseBuild = $false
26+
if ($simulateReleaseBuild)
27+
{
28+
$isReleaseBuild = $true
29+
}
30+
Write-Host "Setting IsReleaseBuild to $isReleaseBuild because SimulateReleaseBuild is $env:SimulateReleaseBuild"
31+
Write-Host "##vso[task.setvariable variable=IsReleaseBuild]$isReleaseBuild"
32+
Write-Host "IsReleaseBuild: $isReleaseBuild"
33+
displayName: Set IsReleaseBuild pipeline variable
34+
env:
35+
SimulateReleaseBuild: $(SimulateReleaseBuild)
36+
37+
- pwsh: |
38+
Import-Module ".\pipelineUtilities.psm1" -Force
39+
Install-Dotnet
40+
displayName: 'Install .NET 3.1'
41+
42+
- pwsh: |
43+
Write-Host "IsReleaseBuild set to $env:IsReleaseBuild"
44+
$isReleaseBuild = $false
45+
if (-not([bool]::TryParse($env:IsReleaseBuild, [ref] $isReleaseBuild)))
46+
{
47+
throw "IsReleaseBuild can only be set to true or false."
48+
}
49+
50+
# We only generate an SBOM for release or simulated release builds
51+
Write-Host "Running ./build.ps1 -Configuration Release -AddSBOM:$isReleaseBuild..."
52+
./build.ps1 -Configuration Release #-AddSBOM:$isReleaseBuild
53+
displayName: 'Build Durable SDK'
54+
env:
55+
# We include IsReleaseBuild as an environment variable since Linux agents don't seem to support including
56+
# pipeline variables in scripts with the $(variable) syntax
57+
IsReleaseBuild: $(IsReleaseBuild)
58+
59+
- task: ArchiveFiles@2
60+
inputs:
61+
rootFolderOrFile: '$(Build.SourcesDirectory)/test/E2E/durableApp/Modules/AzureFunctions.PowerShell.Durable.SDK'
62+
includeRootFolder: false
63+
archiveType: 'tar'
64+
archiveFile: '$(Build.ArtifactStagingDirectory)/$(artifactName).tar.gz'
65+
replaceExistingArchive: true
66+
displayName: 'Tar build tartifacts'

0 commit comments

Comments
 (0)