|
| 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