1

每当我将代码签入我的 GitHub 存储库的主分支时,我都会启动一个 AWS CodeBuild 流程。我的代码库是一个 dotnet 核心无服务器应用程序。我依赖于 GitHub 包存储库中的私有 nuget 包。尝试查找包时,我的 CodeBuild 进程失败:

error NU1101: Unable to find package datastop.io.data-dictionary. 
No packages exist with this id in source(s): nuget.org 

datastop.io.data-dictionary是位于 GitHub 包存储库中的私有 nuget 包,而不是位于 nuget.org 中。从错误消息中可以看出 CodeBuild 进程正在尝试在 nuget 中查找“datastop.io.data-dictionary”。

这是我当前的 buildspec.yml 文件:

version: 0.2
phases:
    install:
        runtime-versions:
            dotnet: 2.1
        commands:
            - echo Entered the install phase...
            - export PATH="$PATH:/root/.dotnet/tools"
            - dotnet tool install -g Amazon.Lambda.Tools
    pre_build:
        commands:
            - echo Entered the pre_build phase...
            - dotnet restore
    build:
        commands:
            - echo Entered the build phase...
            - echo Build started on `date`
            - cd $FOLDER
            - dotnet lambda package --configuration release --framework netcoreapp2.1 -o ./$ZIPPED_APPLICATION
            - aws cloudformation package --template-file infrastructure.yml --s3-bucket $S3_DEPLOYMENT_BUCKET --output-template-file packaged-infrastructure.yml --region us-east-2
            - aws cloudformation deploy --template-file packaged-infrastructure.yml --stack-name $CLOUDFORMATION_STACK_NAME --capabilities CAPABILITY_IAM --region us-east-2

运行时构建过程失败dotnet restore

我假设我需要以某种方式修改我的 buildspec.yml 文件,以让构建过程知道查看正确的包存储库(我们的私有 GitHub 包存储库)。尝试查找包时,如何修改我的 buildspec.yml 文件以指向适当的 GitHub 包存储库datastop.io.data-dictionary

4

1 回答 1

1

如果您将nuget.config文件添加到项目中,并将您的 GitHub 存储库添加到该配置中,它将知道在哪里查找。从那里开始,这是一个权限问题,这就是我正在努力解决的问题。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageSources>
        <clear />
        <add key="github" value="https://nuget.pkg.github.com/YOUR_ACCOUNT_NAME/index.json" />
    </packageSources>
</configuration>
于 2020-02-14T14:55:37.847 回答