首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GitVersion on Azure DevOps yaml管道在Linux上失败

GitVersion on Azure DevOps yaml管道在Linux上失败
EN

Stack Overflow用户
提问于 2022-08-20 18:16:05
回答 1查看 437关注 0票数 0

我正在使用GitVersion在Azure DevOps yaml管道。它在windows-2022代理上工作得很好,但是对于ubuntu-latestubuntu-20.04,GitVersion步骤总是失败的:

代码语言:javascript
复制
/opt/hostedtoolcache/dotnet/dotnet tool install GitVersion.Tool --tool-path /home/vsts/work/_temp --version 5.10.3
You can invoke the tool using the following command: dotnet-gitversion
Tool 'gitversion.tool' (version '5.10.3') was successfully installed.
Caching tool: GitVersion.Tool 5.10.3 x64
##[error]Error: EINVAL: invalid argument, readlink '/opt/hostedtoolcache/dotnet/dotnet'
Finishing: GitVersion

这条管道非常笔直:

代码语言:javascript
复制
pool:
  # vmImage: windows-2022
  vmImage: ubuntu-20.04

trigger:
- main

variables:
- name: buildConfiguration
  value: Release
- name: solutionFile
  value: src/mySolution.sln
- name: packagesToPush
  value: stages:
- stage: Build
  displayName: Build, Pack and Push NuGet Package

  jobs:
  - job: BuildSolution
    displayName: Build Solution
    variables:
      GitVersion.SemVer: ""

    steps:
    - task: UseDotNet@2
      displayName: Use .NET 6
      inputs:
        version: 6.0.x

    - task: UseGitVersion@5
      displayName: GitVersion
      inputs:
        versionSpec: 5.x
        updateAssemblyInfo: false

有人知道问题出在哪里吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-22 05:19:18

测试了同样的任务,得到了同样的问题。

##errorError: EINVAL:无效参数,readlink '/opt/hostedtoolcache/dotnet/dotnet‘

路径:/opt/hostedtoolcache/dotnet/dotnet是环境变量Dotnet_Root的值。

期望值为/opt/hostedtoolcache/dotnet。此值在以下任务中设置:UseDotNet@2

task:UseGitVersion@5 UseDotNet@2任务中的变量集是正确的,但是使用了错误的Dotnet_Root(value:/opt/hostedtoolcache/dotnet/dotnet值)。

这个问题确实来自任务本身。

要解决此问题,可以在UseDotNet@2( installationPath: ../share/dotnet中设置路径)。

以下是YAML示例:

代码语言:javascript
复制
pool:
  # vmImage: windows-2022
  vmImage:  ubuntu-latest

trigger:
- main

variables:
- name: buildConfiguration
  value: Release
- name: solutionFile
  value: src/mySolution.sln
- name: packagesToPush
  value: 
stages:
- stage: Build
  displayName: Build, Pack and Push NuGet Package

  jobs:
  - job: BuildSolution
    displayName: Build Solution
    variables:
      GitVersion.SemVer: ""

    steps:
    - task: UseDotNet@2
      displayName: Use .NET 6
      inputs:
        version: 6.0.x
        installationPath: ../share/dotnet
  
    - task: UseGitVersion@5
      displayName: GitVersion
      inputs:
        versionSpec: 5.x
        updateAssemblyInfo: false

那就成功了。

另一方面,任务: UseGitVersion被废弃了。这意味着任务将不再更新。请参考以下链接:GitVersion

我们建议您可以更改为使用扩展名:GitTools,正如您在评论中所说的,它可以正常工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73429043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档