YAML เทียบเท่ากับท่อส่งออกได้อย่างไร?

Aug 17 2020

ฉันได้ดู Azure DevOps แล้วและฉันรู้สึกงงงวยกับบางสิ่งบางอย่าง: Microsoft ดูเหมือนจะแนะนำอย่างยิ่งให้ใช้ YAML ไปป์ไลน์แทนที่จะเป็นแบบคลาสสิก ยุติธรรมเพียงพอ แต่พวกเขาจำเป็นต้องเปลี่ยนฟังก์ชันการทำงานทั้งหมดที่อยู่ในท่อ classi c ฉันจะเปลี่ยนฟังก์ชัน "ไปป์ไลน์" ด้วย YAML ไปป์ไลน์ได้อย่างไร

ตัวอย่างเช่นด้วยไปป์ไลน์รุ่นคลาสสิกฉันสามารถตั้งค่าไปป์ไลน์เพื่อปรับใช้กับการใช้งานจริงที่มีทริกเกอร์ด้วยตนเอง (ดู 'ด้วยตนเองโดยผู้ใช้'):

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

YAML ไปป์ไลน์เท่ากับอะไร เห็นได้ชัดว่าฉันไม่ต้องการทริกเกอร์ที่ปรับใช้กับการใช้งานจริงโดยอัตโนมัติ - ฉันต้องการให้การปรับใช้นั้นเริ่มต้นด้วยตนเองอย่างเคร่งครัดเสมอ - แต่บทความช่วยเหลือดูเหมือนจะไม่มีทางเลือก YAML

คำตอบ

1 LanceLi-MSFT Aug 18 2020 at 03:42

ดังที่Danielแสดงความเห็นข้างต้น Yaml pipeline สนับสนุนไปป์ไลน์ yaml หลายขั้นตอนสำหรับซีดี คุณสามารถตรวจสอบAzure DevOps Pipelines - Multi-Stage Pipelines และ YAML สำหรับการจัดส่งแบบต่อเนื่องสำหรับรายละเอียดเพิ่มเติม

Azure devops yaml multi-stage pipeline และ classic release pipeline สามารถใช้กับซีดีได้ แต่ก็มีความแตกต่างกันบ้าง และอย่างที่ฉันรู้ว่าไม่มีฟีเจอร์ใดในไปป์ไลน์ YAML ที่สามารถเทียบเท่ากับmanual triggerเวอร์ชันคลาสสิกได้

สำหรับตอนนี้ยังไม่รองรับทริกเกอร์ด้วยตนเองในไปป์ไลน์ YAML โปรดดูการสนทนานี้ ข่าวดีก็คือว่าทีมผลิตภัณฑ์ได้พิจารณาคำขอคุณสมบัติและคุณลักษณะใหม่คือใน Roadmap (อาจเป็นไปตามแผนสำหรับ 2020 Q3)

ตามที่ทีมงานกล่าว: ขอบเขตของคุณลักษณะใหม่ที่พวกเขากำลังคิดอยู่ที่นี่คือสามารถทำเครื่องหมายบนเวทีว่า "เริ่มต้นด้วยตนเองเสมอ" หากมีขั้นตอนอื่นที่ขึ้นอยู่กับขั้นตอนนี้ก็จะรอต่อไปจนกว่าขั้นตอนนี้จะดำเนินการ

เราอาจต้องรอสักครู่ก่อนที่manual triggerคุณสมบัติจะเป็นจริงในไปป์ไลน์ Yaml หวังว่าฟีเจอร์ใหม่จะตอบสนองความต้องการของคุณ

AlexanderVolok Aug 18 2020 at 10:10

Microsoft กล่าวว่าทีมของพวกเขาใช้กลยุทธ์การแตกแขนงของRelease Flowภายใน: Release Flow: How We Do Branching บน VSTS Team

Release Flow หมายความว่าต้องสร้างสาขาการเผยแพร่เพื่อให้รีลีสถูกทริกเกอร์ซึ่งจะมีลักษณะดังนี้:

รุ่น / productname-sprint02

ดังนั้นการสร้างสาขาดังกล่าวสามารถทำหน้าที่เป็นทริกเกอร์ด้วยตนเอง

ในไปป์ไลน์ YAML แบบหลายขั้นตอนควรเข้ารหัสขั้นตอนการปรับใช้การผลิตเพื่อให้ทริกเกอร์เมื่อการดำเนินการไปป์ไลน์เป็นบริบทสาขารีลีสซึ่งไม่ยากที่จะทำโดยใช้ a condition:และนิพจน์ที่มีการตรวจสอบ:

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

ps บล็อกล่าสุดของฉันในหัวข้อที่คล้ายกัน: Azure DevOps - ท่อ YAML และกลยุทธ์การแยกสาขา