[英]Is standard .net supported by AWS CodeBuild?
我正在嘗試在AWS中設置概念證明CI / CD。 我需要建立一個.net mvc項目(不是核心而是標准)。
因此,到目前為止,我想到的是我們需要定義一個管道,通過源代碼獲取代碼(在我的情況下為github),然后將其放入S3
,然后由CodeBuild
構建它,然后由CodeDeploy
部署它。
我發現有帖子說CodeBuild
尚不支持構建標准.net,因為它沒有Windows Server選項。 但是帖子已過時,並且現在實際上具有Windows選項-請參見下圖。
因此,我認為它現在可以支持標准的.net構建,但是我很難找到有關它的任何文檔。 我卡住的地方實際上是設置buildspec.yml
文件。 我不知道如何為標准的.net mvc應用程序設置它。 前面的文章介紹了如何為.net核心創建buildspec.yml
,因此對我不起作用。
誰能幫我解決這個問題?
還是我真的應該繼續設置jenkins服務器並從那里步行?
https://aws.amazon.com/blogs/devops/extending-aws-codebuild-with-custom-build-environments-for-the-net-framework/描述了如何在Windows構建中使用自定義Docker映像。
CodeBuild文檔中提供了一些示例: https ://docs.aws.amazon.com/codebuild/latest/userguide/sample-windows.html
截至2018年5月 ,亞馬遜支持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
為了自己實現這一目標,已經繞了一些漏洞,恐怕答案不是黑白的。
AWS CodeBuild確實支持.net構建,但是我強烈建議不要這樣做。因為存在一些問題的時間成本(和痛苦)。
我自己也遇到了另一個錯誤,即長文件名不受支持,誰知道接下來會發生什么。
即使解決方法也有解決方法,所以讓我們面對吧。 對於通過msbuild進行構建的特定目的,它不是很好,我非常不滿意。
我的下一個嘗試是將構建直接直接自動上載到S3,因此是一個localhost構建和服務器端部署過程。 不是我最初的意圖。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.