O Ubuntu Jenkins anexa caminhos do Windows ao compilar

0

Estou tentando construir meu aplicativo core asp.net usando o Jenkins, que é hospedado com o Tomcat8 em uma máquina Ubuntu 16.04. A primeira compilação é bem-sucedida, mas ao iniciar as compilações depois disso, elas falham (sem alterar nenhum código) porque o Jenkins faz algo estranho com os locais dos arquivos.

O aplicativo está sendo feito em uma máquina Windows. Depois de empurrar para um repositório git, Jenkins puxa a fonte e inicia uma compilação.

Este é o script de construção que estou usando:

dotnet restore
dotnet build --output "<path to workspace>/build"
dotnet publish --output "<path to workspace>/publish"

Como eu disse antes, a primeira vez que essa compilação é bem-sucedida e posso implantar meu aplicativo da web. A segunda vez que eu tento construir isso é o que acontece:

+ dotnet restore
  Restore completed in 45.32 ms for /usr/share/tomcat8/.jenkins/workspace/Memiro/MemiroFrontend/Memiro.FrontEnd/Memiro.FrontEnd.csproj.
  Restore completed in 30.38 ms for /usr/share/tomcat8/.jenkins/workspace/Memiro/MemiroFrontend/Memiro.FrontEnd/Memiro.FrontEnd.csproj.
[MemiroFrontend] $ /bin/sh -xe /tmp/tomcat8-tomcat8-tmp/jenkins4348889529144999043.sh
+ dotnet build --output /var/www/dotnet-app/memiro-frontend/build
Microsoft (R) Build Engine version 15.3.409.57025 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

/usr/share/dotnet/sdk/2.0.0/Sdks/Microsoft.NET.Sdk/build/Microsoft.PackageDependencyResolution.targets(323,5): error : Assets file '/usr/share/tomcat8/.jenkins/workspace/Memiro/MemiroFrontend/Memiro.FrontEnd/C:/Users/Menno/source/repos/MemiroFrontEnd/Memiro.FrontEnd/obj/project.assets.json' not found. Run a NuGet package restore to generate this file. [/usr/share/tomcat8/.jenkins/workspace/Memiro/MemiroFrontend/Memiro.FrontEnd/Memiro.FrontEnd.csproj]
/usr/share/dotnet/sdk/2.0.0/Sdks/Microsoft.NET.Sdk/build/Microsoft.PackageDependencyResolution.targets(165,5): error : Assets file '/usr/share/tomcat8/.jenkins/workspace/Memiro/MemiroFrontend/Memiro.FrontEnd/C:/Users/Menno/source/repos/MemiroFrontEnd/Memiro.FrontEnd/obj/project.assets.json' not found. Run a NuGet package restore to generate this file. [/usr/share/tomcat8/.jenkins/workspace/Memiro/MemiroFrontend/Memiro.FrontEnd/Memiro.FrontEnd.csproj]

Build FAILED.

Por alguma razão, o caminho do Windows para os arquivos é anexado ao caminho do Ubuntu.

Por que o caminho do windows é anexado durante a segunda compilação?

Como resolvo esse problema?

    
por MennoB 13.10.2017 / 18:23

1 resposta

0

Corrigi esse problema usando a opção --runtime.

dotnet build --runtime ubuntu.16.04-x64 --output "<path to workspace>/build"

Ao configurar esta opção, o comando dotnet sabe para qual tempo de execução deve ser construído. Isso evita que a mistura do caminho aconteça.

    
por MennoB 16.10.2017 / 17:57