尝试通过GitHubActions发布到GitHub软件包时,路径错误且没有API错误

时间:2020-08-07 23:06:23

标签: github github-actions

长期以来一直停留在这个问题上,似乎是一个接一个的问题,只是试图让GitHub Actions将nuGet包发布到GitHub包中,文档确实很难找到,而且似乎也没有提供任何明确的信息例子

这是我先前的问题(仅出于上下文考虑,如果有帮助) I cant get gitHub actions to publish my package build to nuget.pkg.github

但是现在,我得到以下信息:

Run dotnet nuget push "bin/Release/Project.1.0.0.nupkg" --source "github"
warn : No API Key was provided and no API Key could be found for 'https://nuget.pkg.github.com/name'. To save an API Key for a source use the 'setApiKey' command.
error: Could not find a part of the path '/home/runner/work/project/project/bin/Release'.

这是我的完整yml

name: .NET Core

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: Setup .NET Core
      uses: actions/setup-dotnet@v1
      with:
        dotnet-version: 3.1.200
    - name: Install dependencies
      run: dotnet restore
    - name: Build
      run: dotnet build --configuration Release --no-restore
    - name: Test
      run: dotnet test --no-restore --verbosity normal
    - name: nuGet publish
      run: dotnet nuget add source https://nuget.pkg.github.com/name/index.json -n github -u uname -p password123 --store-password-in-clear-text
    - name: nuGet pack
      run: dotnet pack --configuration Release
    - name: publish
      run: dotnet nuget push "bin/Release/EurekaShared.1.0.0.nupkg" --source "github"

这是构建结果:

enter image description here

2 个答案:

答案 0 :(得分:0)

不幸的是,

dotnet nuget并非总是按预期方式工作,并且还有返回误导性错误消息的习惯。真气。

尝试在工作流程中添加一个nuget/setup-nuget@v1步骤,并使用nuget.exe push代替dotnet nuget push。这可能会解决问题,或者至少会给您更有用的错误消息。

答案 1 :(得分:0)

我认为该错误与nupkg文件或文件名的路径的部分有关。可能是大小写问题,因为Linux区分大小写。

此外,此工作流程文件仅发布一个程序包,即EurekaShared.1.0.0.nupkg,如果您的程序包为EurekaShared.1.0.2.nupkg,则该程序将不起作用

也许您可以尝试使用通配符**更新YML文件中的最后一行,如下所示:

run: dotnet nuget push /**/*.nupkg --source "github"

我还建议您使用GitHub加密机密https://docs.github.com/en/free-pro-team@latest/actions/reference/encrypted-secrets

在工作流文件中保护用户名和密码。