YAML เทียบเท่ากับท่อส่งออกได้อย่างไร?
ฉันได้ดู 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
คำตอบ
ดังที่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 หวังว่าฟีเจอร์ใหม่จะตอบสนองความต้องการของคุณ
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 และกลยุทธ์การแยกสาขา