YAML tương đương với giải phóng đường ống là gì?

Aug 17 2020

Tôi đã xem xét Azure DevOps và tôi đang bối rối bởi một điều gì đó: Microsoft dường như đang khuyến nghị mạnh mẽ việc sử dụng các đường ống YAML thay vì các đường ống cổ điển; đủ công bằng, nhưng họ cần phải thay thế tất cả các chức năng có trong đường ống classi c. Tôi muốn thay thế chức năng "đường ống phát hành" bằng đường ống YAML như thế nào?

Vì vậy, ví dụ: với các đường ống phát hành cổ điển, tôi có thể thiết lập một đường ống để triển khai cho sản xuất có trình kích hoạt thủ công (xem 'Theo cách thủ công của người dùng'):

https://docs.microsoft.com/en-us/azure/devops/pipelines/release/triggers?view=azure-devops#pull-request-triggers

Đường ống YAML tương đương với điều này là gì? Rõ ràng là tôi không muốn trình kích hoạt tự động triển khai sản xuất - tôi luôn muốn việc triển khai đó được bắt đầu hoàn toàn theo cách thủ công - nhưng bài viết trợ giúp dường như không cung cấp bất kỳ giải pháp thay thế YAML nào.

Trả lời

1 LanceLi-MSFT Aug 18 2020 at 03:42

Như Daniel đã nhận xét ở trên, đường ống Yaml hỗ trợ đường ống dẫn yaml nhiều tầng cho đĩa CD. Bạn có thể kiểm tra Azure DevOps Pipelines - Multi-Stage Pipelines and YAML for Continuous Delivery để biết thêm chi tiết.

Azure devops đường ống nhiều giai đoạn yaml và đường ống phát hành cổ điển đều có thể được sử dụng cho CD, tuy nhiên chúng có một số khác biệt . Và như tôi biết không có tính năng nào trong đường dẫn YAML có thể tương đương với manual triggertrong Bản phát hành cổ điển.

Hiện tại, trình kích hoạt thủ công không được hỗ trợ trong đường dẫn YAML, hãy xem thảo luận này . Tin tốt là nhóm Sản phẩm đã xem xét yêu cầu tính năng và tính năng mới đã có trên Lộ trình . (Có lẽ trong kế hoạch cho quý 3 năm 2020)

Theo nhóm ở đó: Phạm vi của tính năng mới mà họ đang nghĩ ở đây là có thể đánh dấu một giai đoạn là "luôn bắt đầu theo cách thủ công". Nếu có các giai đoạn khác phụ thuộc vào giai đoạn này, thì những giai đoạn đó sẽ tiếp tục đợi cho đến khi giai đoạn này thực hiện.

Chúng ta có thể phải đợi một thời gian trước khi manual triggertính năng này trở thành hiện thực trong đường ống Yaml. Hy vọng tính năng mới sẽ đáp ứng nhu cầu của bạn.

AlexanderVolok Aug 18 2020 at 10:10

Microsoft nói rằng đội bóng của họ trong nội bộ sử dụng phiên bản dòng chiến lược phân nhánh: Phát hành Lưu lượng: How We Do nhánh trên Đội VSTS

Luồng phát hành có nghĩa là nhánh phát hành phải được tạo để kích hoạt bản phát hành, có thể giống như sau:

bản phát hành / productname-sprint02

Do đó, việc tạo một nhánh như vậy có thể hoạt động như một trình kích hoạt thủ công

Trong đường ống YAML nhiều giai đoạn, giai đoạn triển khai sản xuất phải được mã hóa để được kích hoạt khi thực thi đường ống là ngữ cảnh nhánh phát hành, điều này không khó thực hiện bằng cách sử dụng một condition:và một biểu thức có chứa kiểm tra:

${{ startsWith(variables['Build.SourceBranch'], 'refs/heads/releases')

ps Blog gần đây của tôi về chủ đề tương tự: Azure DevOps - Đường ống YAML và chiến lược phân nhánh