簡體   English   中英

Linux Jenkins 管道 dotnet 構建作為管道失敗,但不是作為自由式項目

[英]Linux Jenkins Pipeline dotnet build fails as Pipeline, but not as Freestyle Project

我知道這個問題已經有人問過了,但沒有給出詳細信息,也沒有提供任何答案。 這就是為什么我決定創建一個包含更多細節的問題。 我的 Jenkins 2.289.2 在 Linux VM(Ubuntu 18.04.5 LTS)上運行。 我使用 React 模板創建了一個新的 dotnet 核心 aps.net Web API 項目。 此外,我在存儲庫中添加了一個 Jenkinsfile,內容如下:

node{
  stage('Clean and checkout'){
    cleanWs()
    checkout scm
  }

  stage('Restore'){
    sh 'dotnet restore src/TestProject.sln'
  }

  stage('Clean'){
    sh 'dotnet clean src/TestProject.sln'
  }

  stage('Build'){
    sh 'dotnet build src/TestProject.sln --configuration Release'
  }
}

恢復和清理工作正常,但 dotnet build 失敗:

/usr/share/dotnet/sdk/3.1.411/Roslyn/Microsoft.CSharp.Core.targets(70,5): error MSB3883: Unerwartete Ausnahme:  [/var/lib/jenkins/workspace/ols.TestProject_development/src/TestProject/TestProject.csproj]
/usr/share/dotnet/sdk/3.1.411/Roslyn/Microsoft.CSharp.Core.targets(70,5): error : System.ComponentModel.Win32Exception (11): Resource temporarily unavailable [/var/lib/jenkins/workspace/ols.TestProject_development/src/TestProject/TestProject.csproj]

奇怪的是,如果我使用膩子並導航到 /var/lib/jenkins/workspace/ols.TestProject_development 並運行 dotnet build src/TestProject.sln --configuration Release 它工作得很好。 如果我使用一個 shell 構建步驟創建一個 Jenkins 自由式項目,它也可以正常工作:

dotnet restore src/TestProject.sln
dotnet clean src/TestProject.sln
dotnet build src/TestProject.sln --configuration Release

我也嘗試過:

  • 安裝 dotnet core SDK 5.0 而不是 3.1

  • 使用 Jenkins 插件 .NET SDK 支持和使用:

    dotnetBuild project: 'src/TestProject.sln'

沒有任何效果,我不知道為什么它會作為管道構建失敗,而不是作為自由式項目。 請幫幫我。

結果證明這是我的提供商 STRATO 的問題。 我使用的 linux v-server 導致了這個問題。 眾所周知,你不能在他們的服務器上運行 microk8s。 更改為另一個 v-server 后,所描述的 Jenkins 問題就消失了。

暫無
暫無

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

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