File: publish-1es-artifact.yml

package info (click to toggle)
python-azure 20250603%2Bgit-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 851,724 kB
  • sloc: python: 7,362,925; ansic: 804; javascript: 287; makefile: 195; sh: 145; xml: 109
file content (38 lines) | stat: -rw-r--r-- 1,980 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# This step is used to prevent duplication of artifact publishes when there is an issue that would prevent the overall success of the job.
# Ensuring that we only publish when successful (and two a differently named artifact otherwise) will allow easy retry on a build pipeline
# without running into the "cannot override artifact" failure when we finally do get a passing run.

# ArtifactName - The name of the artifact in the "successful" case.
# ArtifactPath - The path we will be publishing.
# CustomCondition - Used if there is additional logic necessary to prevent attempt of publish.
# SbomEnabled - Set whether to auto-inject 1es pipeline template sbom tasks

parameters:
  ArtifactName: ''
  ArtifactPath: ''
  CustomCondition: true
  SbomEnabled: true

steps:
  - pwsh: |
      if ($env:AGENT_JOBSTATUS -eq "Failed") {
        Write-Host "Setting artifact name to ${{ parameters.ArtifactName }}-FailedAttempt$(System.JobAttempt) because there were failures." 
        Write-Host "##vso[task.setvariable variable=PublishArtifactName;]${{ parameters.ArtifactName }}-FailedAttempt$(System.JobAttempt)"
      } else {
        Write-Host "Setting artifact name to ${{ parameters.ArtifactName }}" 
        Write-Host "##vso[task.setvariable variable=PublishArtifactName;]${{ parameters.ArtifactName }}"
      }
    condition: and(succeededOrFailed(), ${{ parameters.CustomCondition }})
    displayName: Set Artifact Name 

  - task: 1ES.PublishPipelineArtifact@1
    condition: and(succeededOrFailed(), ${{ parameters.CustomCondition }})
    displayName: 'Publish ${{ parameters.ArtifactName }} Artifacts'
    inputs:
      artifactName: '$(PublishArtifactName)'
      targetPath: '${{ parameters.ArtifactPath }}'
      # Disable sbom generation by default for our public validation builds to avoid unnecessary work
      ${{ if eq(variables['System.TeamProject'], 'public') }}:
        sbomEnabled: false
      ${{ else }}:
        sbomEnabled: ${{ parameters.SbomEnabled }}