3

我正在尝试通过 GitHub Actions 构建我的 dotnet 类库项目。除了一些标准的 nuget.org包之外,我的项目还使用存储在GPR上的私有 NuGet 包。我无法像在本地机器上那样成功构建。

我正在使用setup-dotnet(并尝试过warrenbuckley/Setup-Nuget,但没有运气):

jobs:
  build:
    runs-on: windows-latest # I started with ubuntu-latest, but the dotnet nuget is missing functionality.
    steps:
      - uses: actions/checkout@master
      - uses: actions/setup-dotnet@v1
        with:
          dotnet-version: '3.1.100'
          source-url: https://nuget.pkg.github.com/owner/index.json
        env:
          NUGET_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
      - run: dotnet restore --source # fails here
      - run: dotnet build -c Release --no-restore

我知道它找到了正确的 GPR,因为它在这里成功安装了我的私有包,但找不到任何 nuget.org pacakges
我尝试过的另一个变体:

      - run: dotnet nuget add source https://nuget.pkg.github.com/myorg/index.json -n "My Source"
      - run: dotnet build -c Release --no-restore # fails here

在这里,它找不到我的私人包裹。
最近,我尝试了 nuget cli:

      - uses: warrenbuckley/Setup-Nuget@v1
      - run: nuget sources Add -Source https://nuget.pkg.github.com/myorg/index.json -Name "My Org" -username myorguser -password ${{secrets.GITHUB_TOKEN}} -StorePasswordInClearText
      - run: nuget restore # Fails here
      - run: dotnet build -c Release --no-restore

这提供了最多的信息,但仍然无法找到我的 GPR 包,尽管(与前面的示例不同)它找到了我期望的所有来源 (本地、nuget.org 和我的私人组织)。以下是一些看起来很有趣的日志:

32 NotFound https://nuget.pkg.github.com/myorg/download/mypackage/index.json
...
65 NotFound https://api.nuget.org/v3-flatcontainer/efinitycore/index.json
...
930     NU1101: Unable to find package MyPackage. No packages exist with this id in source(s): My Org, Microsoft Visual Studio Offline Packages, nuget.org
931 Errors in D:\a\WorkflowLibrary\WorkflowLibrary\WorkflowLibrary.Tests\WorkflowLibrary.Tests.csproj
932     NU1101: Unable to find package MyPackage. No packages exist with this id in source(s): My Org, Microsoft Visual Studio Offline Packages, nuget.org
...
935 NuGet Config files used:
    C:\Users\runneradmin\AppData\Roaming\NuGet\NuGet.Config
    C:\Program Files (x86)\NuGet\Config\Microsoft.VisualStudio.Offline.config
    C:\Program Files (x86)\NuGet\Config\Xamarin.Offline.config

942 Feeds used:
    C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\
    https://api.nuget.org/v3/index.json
    https://nuget.pkg.github.com/myorg/index.json
4

3 回答 3

2

这对我有用

工作: 建造:

runs-on: windows-latest

steps:
- uses: actions/checkout@v2
- name: Setup Nuget.exe
  uses: nuget/setup-nuget@v1.0.2
- name: Add GPR Source using nuget.exe
  run: nuget sources add -name "GPR" -Source https://api.nuget.org/v3/index.json -Source https://nuget.pkg.github.com/{myorg}/index.json -Username {login} -Password ${{ token }}
- name: Setup .NET Core
  uses: actions/setup-dotnet@v1
  with:
    dotnet-version: 3.1.101
于 2020-06-20T12:22:29.283 回答
0
steps:
      - uses: actions/checkout@master
      - uses: actions/setup-dotnet@v1
        with:
          dotnet-version: '3.1.100'
          source-url: https://nuget.pkg.github.com/owner/index.json
        env:
          NUGET_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}

在上述步骤中,更改NUGET_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}NUGET_AUTH_TOKEN: ${{secrets.YOUR_PAT}}. 我遇到了同样的问题,我可以使用PAT.

于 2021-01-31T14:30:35.920 回答
0

刚刚花了半天的时间来解决类似于OP描述的问题。必须注意跨存储库场景,其中包起源/构建在一个存储库中,然后尝试通过另一个存储库中的 GH Actions 进行恢复。在这种情况下GITHUB_TOKEN,Actions 生成的范围仅限于当前存储库,并且无权查看来自 GH 组织内其他私有存储库的包。这导致 Nuget 在尝试检查 GPR 中的包时显示 NotFound 响应代码,最终显示 NU1101 错误代码。

有关潜在问题的更多信息:https ://github.community/t/github-token-cannot-access-private-packages/16621/14

抱歉的解决方法是切换到使用个人访问令牌。

于 2021-02-09T04:19:27.420 回答