Поддерживается ли стандарт .net AWS CodeBuild? - PullRequest
0 голосов
/ 31 августа 2018

Я пытаюсь настроить подтверждение концепции CI / CD в AWS. Мне нужно построить проект .net mvc (не основной, а стандартный).

Итак, я понял, что нам нужно определить конвейер, получить код через исходный код (в моем случае github) и поместить его в S3, затем CodeBuild, а затем CodeDeploy развертывает это.

Я нашел сообщения о том, что сборка стандартного .net еще не поддерживается CodeBuild, так как у него нет опции сервера Windows. Но сообщение датировано, и на самом деле у него есть опция windows прямо сейчас - см. Рисунок ниже.

shows windows server is available

Так что я подумал, что теперь он может поддерживать стандартные сборки .net, но у меня проблемы с поиском какой-либо документации по нему. Я застрял на самом деле с настройкой файла buildspec.yml. Я понятия не имею, как настроить его для стандартного приложения .net MVC. Вышеупомянутый пост рассказывает, как создать buildspec.yml, но для ядра .net, следовательно, не работает для меня.

Может ли кто-нибудь помочь мне обойти это?

Или мне действительно нужно настроить сервер jenkins и идти оттуда?

Ответы [ 3 ]

0 голосов
/ 10 декабря 2018

Amazon, по состоянию на май-2018 , поддерживает хосты Windows, так что да, это возможно. В сочетании с образом сборки Microsoft .NET Framework я смог заставить его работать. Вот предварительный buildspec.yml, с которого нужно начать:

version: 0.2

# Assumes the image is microsoft/dotnet-framework:4.7.2-sdk or similar
phases:
  install:
    commands:
      # Below is the URL for the MSI linked from https://www.iis.net/downloads/microsoft/web-deploy
      - Invoke-WebRequest -OutFile WebDeploy_amd64_en-US.msi https://download.microsoft.com/download/0/1/D/01DC28EA-638C-4A22-A57B-4CEF97755C6C/WebDeploy_amd64_en-US.msi
      - msiexec /i WebDeploy_amd64_en-US.msi /quiet
      # MSIExec will return before it is actually done - 30s seems to work...
      - Start-Sleep 30
  pre_build:
    commands:
      - nuget restore
  build:
    commands:
      - msbuild /P:Configuration=Release /T:Build,Package
0 голосов
/ 26 июля 2019

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

AWS CodeBuild поддерживает сборку .net, но я настоятельно рекомендую не делать этого из-за затрат времени (и боли) из-за некоторых проблем.

  1. Поиск и понимание конфигурации buildspec громоздки здесь
  2. Исправление отсутствующих ссылок (например, отсутствующих Microsoft.WebApplication.targets ).

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

Даже обходные пути имеют обходные пути, так что давайте посмотрим правде в глаза. Это не очень хорошо для конкретной цели построения через msbuild, что вызывает у меня большую неудовлетворенность.

Моя следующая попытка будет автоматизировать прямую загрузку сборки на S3, поэтому процедура сборки на локальном хосте и на стороне сервера. Не то, что я изначально намеревался.

0 голосов
/ 08 сентября 2018

https://aws.amazon.com/blogs/devops/extending-aws-codebuild-with-custom-build-environments-for-the-net-framework/ описывает, как использовать пользовательские образы Docker для ваших сборок Windows.

Некоторые образцы доступны в документации CodeBuild: https://docs.aws.amazon.com/codebuild/latest/userguide/sample-windows.html

...