2016-02-11 18 views
15

Chúng tôi vừa cài đặt TFS 2015 (Update 1) tại chỗ và đang cố tạo hệ thống tích hợp liên tục/xây dựng bằng hệ thống TFS Build mới. Việc xây dựng hoạt động tốt, và cho tôi một ánh sáng màu xanh lá cây, nhưng khi tôi nhìn vào xây dựng mặc định nó chỉ xây dựng các tệp nhị phân từ thư mục bin và dường như không có cách nào dễ dàng để triển khai ứng dụng tại chỗ cho máy chủ cục bộ . Có hai tùy chọn triển khai cho một bản sao hệ thống tập tin, và một kịch bản PowerShell, và nó chắc chắn sẽ dễ dàng sử dụng chúng để sao chép các tập tin vào một máy chủ mới, nhưng kể từ khi xây dựng chỉ xây dựng các tập tin nhị phân, tôi không thấy một công cụ để thu thập các tạo phẩm Web (cshtml, hình ảnh, kịch bản, css, v.v.) cho việc này.Xây dựng và triển khai một ứng dụng web với TFS 2015 Build

Sau một tìm kiếm google đầy đủ, tôi đã chỉ tìm thấy một bài viết mà nói về vấn đề này tại địa chỉ:

http://www.deliveron.com/blog/building-websites-team-foundation-build-2015/

Tuy nhiên, điều này sử dụng WebDeploy và tạo ra một gói phần mềm triển khai khá lộn xộn.

Làm cách nào để triển khai trang web (ứng dụng web MVC chuẩn, trên thực tế, các thử nghiệm của tôi đang sử dụng trang bản mẫu mặc định được tạo bởi thuật sĩ tạo dự án) hoàn chỉnh với các tạo tác đến máy chủ cục bộ theo cách dễ nhất? Tôi không muốn phải cài đặt WebDeploy trên các máy chủ, và muốn sử dụng PowerShell hoặc một cái gì đó để triển khai các tạo tác cuối cùng.

Bản dựng chỉ là mẫu dựng Visual Studio chuẩn, với 4 bước (Xây dựng, Thử nghiệm, Chỉ mục & Xuất bản, Xuất bản các tạo phẩm xây dựng).

+0

Làm cách nào điều này phù hợp với bạn? Tôi đang cố gắng để đảm bảo triển khai không xảy ra nếu bước kiểm tra sau thất bại. Bạn có thể làm điều đó không? –

+1

@ one.beat.consumer - Bạn nên tách ra biên dịch/thử nghiệm của bạn từ triển khai dưới dạng hai giai đoạn riêng biệt, sau đó bạn có thể triển khai cùng một mã cho các môi trường thử nghiệm/qa/prod của bạn. –

+0

Cảm ơn. Tính năng "Release" đang triển khai các gói như bạn đã đề cập. Những gì tôi gặp rắc rối với việc phân tách việc thực hiện các kiểm tra từ bước xây dựng, vì các ví dụ duy nhất tôi tìm thấy cho XUnit là các tùy chỉnh cho bản dựng. Tôi đã tìm thấy gói NuGet xunit.runner.visualstudio cho phép tôi tùy chỉnh một bước Thử nghiệm một cách thích hợp. Tuy nhiên, phải mất hai bản dựng ngay bây giờ - đầu tiên để xây dựng prepping cho thử nghiệm, và thứ hai để tạo ra một gói triển khai nếu các bài kiểm tra vượt qua. –

Trả lời

15

Chúng tôi sử dụng "Visual Studio Xây dựng" bước và như luận cứ cho MSBuild chúng tôi sử dụng sau dòng:

/p:DeployOnBuild=True /p:PublishProfile=$(DeploymentConfiguration) 

On biến trang tab DeploymentConfiguration đã được cấu hình. Nó phải là Tên của Hồ sơ xuất bản (tên tệp của tệp pubxml). Nếu tên tệp là Build.pubxml thì hồ sơ xuất bản là Xây dựng.

ví dụ:

/p:DeployOnBuild=True /p:PublishProfile=Build 
+3

@Sabastian - Cảm ơn. Câu hỏi của tôi sau đó là làm thế nào có thể triển khai này được ngăn chặn nếu những thứ trong một bước xây dựng Visual Studio thử nghiệm sau thất bại? –

-5

Chúng tôi sử dụng WebDeploy/MSDeploy cho hơn 40 ứng dụng và yêu thích nó. Chúng tôi cài đặt WebDeploy trên tất cả các máy chủ của chúng tôi để chúng tôi có thể triển khai dễ dàng hơn nhưng bạn cũng có thể sử dụng tính năng Web Deploy On Demand không yêu cầu WebDeploy được cài đặt sẵn.

1

I wanted to add that Ben Day has an excellent write-up that helped us package quickly and then release to multiple environments through Release Manager.

luận msbuild của ông trông như thế này:

/p:DeployOnBuild=True /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:DeleteExistingFiles=True /p:publishUrl=$(build.artifactstagingdirectory)\for-deploy\website 

Sự khác biệt giữa điều này và câu trả lời được chấp nhận là thông số thiết lập này giai đoạn tất cả mọi thứ trong một thư mục hiện vật, và sau đó lưu nó như một phần của việc xây dựng. Sau đó chúng tôi có thể triển khai chính xác cùng một mã.

Chúng tôi chụp các tệp web.env.config cùng với thư mục triển khai và sau đó sử dụng biến đổi xdt trong quá trình phát hành để đảm bảo mọi thứ được cập nhật cho bất kỳ môi trường nào chúng tôi đang triển khai. Nó hoạt động tốt cho tất cả các dự án web của chúng tôi.

+1

Thư mục xuất bản có thể được đặt trong cấu hình xuất bản, nó không cần phải được chỉ định trên dòng lệnh. Do đó, nó có thể được phiên bản dễ dàng hơn –

+0

Đó là một điểm tốt. Đối với môi trường của chúng tôi (có lẽ chúng tôi không bình thường ở đây?), Chúng tôi đã chọn phương pháp này để ghi đè bất kỳ hồ sơ xuất bản nào để nắm bắt trang web dưới dạng tạo phẩm xây dựng và sau đó triển khai cho nhiều mục tiêu thông qua Trình quản lý bản phát hành TFS. –

Các vấn đề liên quan