簡體   English   中英

如何使用 Python 腳本退出代碼作為 Azure 管道中以下任務的條件?

[英]How to use a Python script exit code as a condition for the following task in Azure Pipeline?

我有一個管道將 Azure 板工作項導出到 csv 文件。

這是過程:

  1. 從上次成功的管道運行中下載構建工件(csv 文件和 timestamp.txt)。

  2. 運行 Python 腳本以查詢自上次成功運行管道以來更新的工作項(上次導出時間在 timestamp.txt 中)。 如果有更新的工作項,則使用這些工作項更新 csv 文件,更新 timestamp.txt 並以 0 退出程序。如果未找到更新的工作項,則以非零值退出程序。

  3. 將更新或“未更新”的 csv 文件和 timestamp.txt 發布為構建工件。

  4. 將更新的 csv 文件上傳到 SharePoint 站點。

我想要實現的:

  1. 無論 csv 文件是否更新,流水線運行應以成功結束。

  2. 我需要定義一個 bool 變量,可以設置取決於 Python 腳本的退出代碼(或者可以直接在 Python 腳本中設置)。

  3. 使用該布爾變量作為上傳到 SharePoint 任務的條件。

如何創建 YAML 文件來實現這一點? 謝謝。

YAML:

# - master
trigger: none

schedules:
- cron: "0 */12 * * 1,2,3,4,5"
  displayName: Hourly Azure All WorkItems Export
  branches:
    include:
    - master
  always: true
   
pool: 'Windows-VS2017DEV'


steps:

# - task: InstallPython@1
#   inputs:
#     version: 'python'

- task: UsePythonVersion@0
  inputs:
    versionSpec: '3.x'
    addToPath: true
    architecture: 'x64'

- task: DownloadBuildArtifacts@0
  inputs:
    buildType: 'specific'
    project: 'XXX'
    pipeline: 'xxx'
    buildVersionToDownload: 'latest'
    downloadType: 'single'
    artifactName: 'Azure_Reporting'
    downloadPath: '$(System.DefaultWorkingDirectory)'


- task: PythonScript@0
  inputs:
    scriptSource: 'filePath'
    scriptPath: 'Python/azure_workitems.py'
    arguments: '$(azure_workitems_option)'   

- task: CopyFiles@2
  inputs:
    contents: |
      *csv
      timestamp.txt
    targetFolder: $(Build.ArtifactStagingDirectory)
    
- task: PublishBuildArtifacts@1
  inputs:
    pathToPublish: $(Build.ArtifactStagingDirectory)
    artifactName: Azure_Reporting

- task: UploadFilesToSPDocLib@1
  inputs:
    spUrl: 'https://XXXX.sharepoint.com/sites/XXXX'
    targetFolder: 'Shared%20Documents/Status%20dashboards/Azure_Reporting'
    login: 'XXXXX@XXXXXX.com'
    password: $(XXX.Credential)
    filesToUpload: ' $(Build.ArtifactStagingDirectory)/azure_workitems.csv'

在 python 腳本中,您可以根據您的邏輯(而不是退出代碼)分配具有值的新變量。

例如,如果代碼做了他應該做的,並且您想要運行上傳到 SharePoint 任務,請添加以下日志記錄命令

print('##vso[task.setvariable variable=uploadSP]true')

並在上傳到 SharePoint 任務中添加自定義條件

and(succeeded(), eq(variables['uploadSP'], 'true'))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM