.NET Core проблема со сборкой кода - PullRequest
1 голос
/ 10 октября 2019

В качестве источника у меня есть настройка проекта ядра .net на github. Я пытаюсь создать и запустить сборку через Cli.

Я использовал команду cli aws codebuild create-project --generate-cli-skeleton > new-project.json для создания файла json, необходимого для создания проекта codebuild. Вот как это выглядит после того, как я отредактировал скелет из вышеприведенной команды.

{
"name": "CoreWebApp-cli-proj",
"description": "created from the CLI",
"source": {
    "type": "GITHUB",
    "location": "https://github.com/xxx-xxx/my-sample.git",
    "gitCloneDepth": 0,
    "gitSubmodulesConfig": {
        "fetchSubmodules": true
    },
    "buildspec": "",
    "auth": {
        "type": "OAUTH",
        "resource": ""
    },
    "reportBuildStatus": true,
    "insecureSsl": true

},
"artifacts": {
    "type": "NO_ARTIFACTS",

    "overrideArtifactName": true,

    "artifactIdentifier": ""
},

"cache": {
    "type": "NO_CACHE",
    "location": "",
    "modes": [
        ""
    ]
},
"environment": {
    "type": "WINDOWS_CONTAINER",
    "image": "aws/codebuild/windows-base:2.0",
    "computeType": "BUILD_GENERAL1_MEDIUM",
    "environmentVariables": [
        {
            "name": "TestVar",
            "value": "TestVarValuehere",
            "type": "PLAINTEXT"
        }
    ],
    "privilegedMode": false,
    "certificate": "arn:aws:s3:::codebuild-bucket/cert/CLI_KeyPair.pem",   

    "imagePullCredentialsType": "CODEBUILD"
},
"serviceRole": "codebuild-admin",
"timeoutInMinutes": 5,
"queuedTimeoutInMinutes": 5,

"tags": [
    {
        "key": "Name",
        "value": "TagName_CodeBuild"
    }
],

"badgeEnabled": true,
"logsConfig": {
    "cloudWatchLogs": {
        "status": "ENABLED",
        "groupName": "CodeBuild-LogGroup",
        "streamName": "CodeBuild-LogStream"
    },
    "s3Logs": {
        "status": "ENABLED",
        "location": "codebuild-bucket/build-log",
        "encryptionDisabled": true
    }
}

}

Затем я использовал эту команду для создания проекта с помощью cli aws codebuild create-project --cli-input-json file://new-project.json Проект получаетсоздан с помощью этой команды. Проблема, с которой я сталкиваюсь, заключается в том, что при попытке запустить этот проект с помощью команды aws codebuild start-build --project-name CoreWebApp-cli-proj я получаю следующую ошибку:

DOWNLOAD_SOURCE Failed CLIENT_ERROR: невозможно установить любой из предоставленных сертификатов для первичного источника

Я установил соединение между github и моей учетной записью aws, используя OAUTH. Почему я все еще получаю сообщение об ошибке при подключении?

Я создал отдельный новый проект с помощью консоли, и он отлично работает, когда я использую команду запуска сборки из cli. Что происходит и что мне нужно проверить?

Спасибо

1 Ответ

2 голосов
/ 10 октября 2019

Я вижу, вы указываете сертификат в среде:

"certificate": "arn:aws:s3:::codebuild-bucket/cert/CLI_KeyPair.pem",

Это действительно только для источников GitHub Enterprise, так как сертификат используется для создания доверенного SSL-соединения с репозиторием GE. Поскольку ваш источник размещен на https://github.com,, пользовательский сертификат не требуется и, вероятно, станет причиной проблемы, свидетелем которой вы стали. Вы можете удалить путь сертификата и повторить попытку.

Во-вторых, поскольку вы уже создали проект через консоль, который работает, как и ожидалось, вы можете экспортировать проект json как:

$ aws codebuild batch-get-projects  --names "CoreWebApp-cli-proj" > CoreWebApp-cli-proj.json

. ... а затем сравните экспорт с созданным вручную json, которым вы поделились выше, чтобы увидеть, сможете ли вы определить проблему по различиям.

...