Skip to content
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.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions eng/ci/official-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
variables:
- template: ci/variables/cfs.yml@eng

trigger:
batch: true
branches:
include:
- main
- dajusto/test-build

# CI only, does not trigger on PRs.
pr: none

resources:
repositories:
- repository: 1es
type: git
name: 1ESPipelineTemplates/1ESPipelineTemplates
ref: refs/tags/release
- repository: eng
type: git
name: engineering
ref: refs/tags/release

extends:
template: v1/1ES.Official.PipelineTemplate.yml@1es
parameters:
pool:
name: 1es-pool-azfunc
image: 1es-windows-2022
os: windows

stages:
- stage: BuildAndSign
dependsOn: []
jobs:
- template: /eng/templates/build.yml@self
66 changes: 66 additions & 0 deletions eng/templates/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
jobs:
- job: Build

templateContext:
outputs:
- output: pipelineArtifact
path: $(build.artifactStagingDirectory)
artifact: drop
sbomBuildDropPath: $(System.DefaultWorkingDirectory)
sbomPackageName: 'Durable Functions PowerShell SBOM'

variables:
SimulateReleaseBuild: true
artifactName: 'azure-functions-durable-powershell-$(Build.SourceVersion)'

steps:
- pwsh: |
$simulateReleaseBuild = $null
Write-Host "SimulateReleaseBuild set to $env:SimulateReleaseBuild"
if (-not([bool]::TryParse($env:SimulateReleaseBuild, [ref] $simulateReleaseBuild)))
{
throw "SimulateReleaseBuild can only be set to true or false."
}

$isReleaseBuild = $false
if ($simulateReleaseBuild)
{
$isReleaseBuild = $true
}
Write-Host "Setting IsReleaseBuild to $isReleaseBuild because SimulateReleaseBuild is $env:SimulateReleaseBuild"
Write-Host "##vso[task.setvariable variable=IsReleaseBuild]$isReleaseBuild"
Write-Host "IsReleaseBuild: $isReleaseBuild"
displayName: Set IsReleaseBuild pipeline variable
env:
SimulateReleaseBuild: $(SimulateReleaseBuild)

- pwsh: |
Import-Module ".\pipelineUtilities.psm1" -Force
Install-Dotnet
displayName: 'Install .NET 3.1'

- pwsh: |
Write-Host "IsReleaseBuild set to $env:IsReleaseBuild"
$isReleaseBuild = $false
if (-not([bool]::TryParse($env:IsReleaseBuild, [ref] $isReleaseBuild)))
{
throw "IsReleaseBuild can only be set to true or false."
}

# We only generate an SBOM for release or simulated release builds
Write-Host "Running ./build.ps1 -Configuration Release -AddSBOM:$isReleaseBuild..."
./build.ps1 -Configuration Release #-AddSBOM:$isReleaseBuild
displayName: 'Build Durable SDK'
env:
# We include IsReleaseBuild as an environment variable since Linux agents don't seem to support including
# pipeline variables in scripts with the $(variable) syntax
IsReleaseBuild: $(IsReleaseBuild)

- task: ArchiveFiles@2
inputs:
rootFolderOrFile: '$(Build.SourcesDirectory)/test/E2E/durableApp/Modules/AzureFunctions.PowerShell.Durable.SDK'
includeRootFolder: false
archiveType: 'tar'
archiveFile: '$(Build.ArtifactStagingDirectory)/$(artifactName).tar.gz'
replaceExistingArchive: true
displayName: 'Tar build tartifacts'