0

在我的天蓝色 devops 管道中。首先构建一个 conda 包并通过UniversalPackages@0任务发布。

构建和上传代码片段如下所示

- stage: build_upload_package 
  displayName: Build and upload package
  pool:
    name: Private Agent Eve 
  jobs:
  - job: build_upload_package
    displayName: Build and Upload Package
    condition: and(succeeded(), eq(variables['build.sourceBranch'], 'refs/heads/release'))
    container:
      image: <azureacr_repo.io>/conda:latest   //modified to remove the information
      endpoint: NameOfTheServiceConnection     //modified to remove the information
    steps:

      - bash: |
          echo "##vso[task.prependpath]$CONDA/bin"
          conda build . --output-folder $(Build.ArtifactStagingDirectory)
        displayName: Build Package
      - bash: echo "##vso[task.setvariable variable=packageName]$(basename $(gitRepoName))"
        displayName: Set Package Name


      - task: UniversalPackages@0  //Error appears here
        displayName: Upload to Azure Universal Packages
        inputs:
          command: publish
          publishDirectory: '$(Build.ArtifactStagingDirectory)'
          vstsFeedPublish: 'project_1/feed_1'   //modified to remove the information
          vstsFeedPackagePublish: '$(packageName)'
          versionOption: patch
          packagePublishDescription: 'upload a Conda Package'

Universal UniversalPackages 任务的错误如下所示

2020-11-24T17:54:48.9628862Z ##[section]Starting: Upload to Azure Universal Packages
2020-11-24T17:54:48.9645737Z ==============================================================================
2020-11-24T17:54:48.9646470Z Task         : Universal packages
2020-11-24T17:54:48.9647068Z Description  : Download or publish Universal Packages
2020-11-24T17:54:48.9647636Z Version      : 0.175.0
2020-11-24T17:54:48.9648154Z Author       : Microsoft Corporation
2020-11-24T17:54:48.9648809Z Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks
2020-11-24T17:54:48.9649526Z ==============================================================================
2020-11-24T17:54:49.4896147Z SYSTEMVSSCONNECTION exists true
2020-11-24T17:54:50.1267511Z Downloading: https://08wvsblobprodsu6weus73.vsblob.vsassets.io/artifacttool/artifacttool-linux-x64-Release_0.2.172.zip?sv=2019-02-02&sr=b&sig=FvnCFjIg7ZBmIapFcCcWDC1%2F7pajvzvgo0fR2Y3YYeU%3D&spr=https&se=2020-11-24T18%3A54%3A51Z&sp=r&P1=1606243791&P2=11&P3=2&P4=1nPT99OOlNXc9xNzoCS6LpVATo%2bW4fIskTJ8u6olWMk%3d
2020-11-24T17:54:56.4979070Z Caching tool: ArtifactTool 0.2.172 x64
2020-11-24T17:54:56.7183832Z SYSTEMVSSCONNECTION exists true
2020-11-24T17:54:58.7313555Z ##[error]TypeError: Cannot read property 'toLowerCase' of null
2020-11-24T17:54:58.7323845Z ##[error]Packages failed to publish
2020-11-24T17:54:58.7641267Z ##[section]Finishing: Upload to Azure Universal Packages

问题:

我该如何解决这个问题?

4

2 回答 2

2

我想我发现了错误,gitRepoName是一个模板参数,它应该被访问为${{ gitRepoName }}不是$(gitRepoName)

于 2020-11-25T09:56:27.913 回答
1

我对这个任务做了一些测试:UniversalPackages@0. 我注意到任务中有以下提示:

通用包名称必须是一个或多个小写字母数字段,由破折号、圆点或下划线分隔。包名称必须少于 256 个字符。

当您的 packageName 包含大写字母或其他特殊字符时,此任务将失败。

您可以尝试以下脚本:

        - task: PowerShell@2
          inputs:
           targetType: 'inline'
           script: |
              $name = $(basename $(gitRepoName)).ToLower()
              Write-Host "##vso[task.setvariable variable=packageName]$name"

        - task: UniversalPackages@0
          inputs:
            command: 'publish'
            publishDirectory: '$(Build.ArtifactStagingDirectory)'          
            vstsFeedPublish: 'project_1/feed_1'
            vstsFeedPackagePublish: '$(packageName)'
            versionOption: 'patch'

Powershell 任务可以小写 RepoName。

于 2020-11-25T03:29:28.187 回答