Jenkins Pipeline เป็นโค้ดด้วย Jenkinsfile
กำหนดขั้นตอนการสร้าง การทดสอบ และการนำส่งแบบประกาศใน Jenkinsfile ที่เก็บไว้ในที่เก็บโค้ด เพื่อให้ pipeline มีการควบคุมเวอร์ชันควบคู่ไปกับแอปพลิเคชัน
Jenkins Pipeline เป็นโค้ดด้วย Jenkinsfile เป็นบทเรียน Docker & DevOps Fundamentals ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Docker & DevOps Fundamentals และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Docker & DevOps Fundamentals มีบทเรียนทั้งหมด 4 บทเรียน
ไปป์ไลน์ในรูปแบบโค้ด
แทนที่จะกำหนดค่างานด้วยตนเองในส่วนติดต่อผู้ใช้ของ Jenkins ให้ описายไปป์ไลน์ทั้งหมดไว้ใน Jenkinsfile ที่จัดเก็บอยู่ในที่เก็บโค้ดของคุณ ไปป์ไลน์จึงกลายเป็นโค้ดที่ตรวจสอบได้ จัดการเวอร์ชันได้ และย้ายไปใช้งานที่อื่นได้
แบบประกาศเทียบกับแบบสคริปต์
Jenkins มีไวยากรณ์ให้เลือกสองแบบ ไปป์ไลน์แบบ ประกาศมีโครงสร้างชัดเจนและเหมาะสำหรับผู้เริ่มต้น ส่วนไปป์ไลน์แบบ สคริปต์ใช้ภาษา Groovy อย่างเต็มรูปแบบ เราจะเน้นรูปแบบประกาศ
บล็อกไปป์ไลน์
Jenkinsfile แบบประกาศทุกไฟล์จะเริ่มต้นด้วยบล็อก pipeline ซึ่งประกอบด้วย agent (ตำแหน่งที่ทำงาน) และ stages
pipeline {
agent any
stages {
stage('Build') {
steps { echo 'Building...' }
}
}
}การกำหนดขั้นตอน
แต่ละ stage จะจัดกลุ่ม steps ที่เกี่ยวข้องกัน ขั้นตอนจะแสดงเป็นคอลัมน์ในส่วนติดต่อผู้ใช้ของ Jenkins ทำให้เห็นความคืบหน้าของไปป์ไลน์ได้อย่างชัดเจน
stages {
stage('Build') { steps { sh 'make build' } }
stage('Test') { steps { sh 'make test' } }
}การเรียกใช้ขั้นตอนเชลล์
ขั้นตอน sh จะเรียกใช้คำสั่งเชลล์บนเอเจนต์ ใช้ขั้นตอนนี้เพื่อคอมไพล์โค้ด เรียกใช้การทดสอบ หรือสร้างอิมเมจ Docker
steps {
sh 'docker build -t myapp:${BUILD_NUMBER} .'
}ตัวแปรสภาพแวดล้อม
บล็อก environment จะกำหนดตัวแปรสำหรับทุกขั้นตอน Jenkins ยังเปิดเผยตัวแปรในตัว เช่น BUILD_NUMBER และ GIT_COMMIT ด้วย
environment {
REGISTRY = 'registry.example.com'
IMAGE = 'myapp'
}การเชื่อมโยงข้อมูลรับรอง
อย่าเขียนข้อมูลลับลงในโค้ดโดยตรง ให้จัดเก็บข้อมูลเหล่านั้นไว้ในข้อมูลรับรองของ Jenkins แล้วดึงมาใช้ด้วยตัวช่วย credentials() เพื่อให้ข้อมูลถูกปิดบังในบันทึก
environment {
REG_PASS = credentials('registry-password')
}การดำเนินการหลังจบ
บล็อก post จะทำงานหลังขั้นตอนต่าง ๆ เสร็จสิ้น โดยแยกการทำงานตามผลลัพธ์ เหมาะอย่างยิ่งสำหรับการแจ้งเตือนและการล้างข้อมูล
post {
success { echo 'Pipeline succeeded' }
failure { echo 'Pipeline failed' }
always { sh 'docker image prune -f' }
}ขั้นตอนแบบขนาน
เพิ่มความเร็วด้วยการเรียกใช้งานที่ไม่ขึ้นต่อกันใน parallel พร้อมกัน เช่น การทดสอบหน่วยและการทดสอบการผสานรวมในเวลาเดียวกัน
stage('Tests') {
parallel {
stage('Unit') { steps { sh 'make unit' } }
stage('Integration') { steps { sh 'make int' } }
}
}ขั้นตอนแบบมีเงื่อนไข
คำสั่งกำกับ when จะเรียกใช้ขั้นตอนเฉพาะเมื่อเงื่อนไขเป็นจริง เช่น นำไปใช้งานเฉพาะบนสาขาหลัก
stage('Deploy') {
when { branch 'main' }
steps { sh './deploy.sh' }
}ไปป์ไลน์หลายสาขา
ชี้ Jenkins ไปยังที่เก็บโค้ด แล้ว Jenkins จะค้นหาทุกสาขาที่มี Jenkinsfile และสร้างไปป์ไลน์สำหรับแต่ละสาขาโดยอัตโนมัติ สาขาฟีเจอร์จะได้รับ CI โดยไม่ต้องตั้งค่าเพิ่มเติม
ตรวจสอบอย่างรวดเร็ว
คำจำกัดความไปป์ไลน์แบบประกาศอยู่ที่ใด
สรุป
คุณได้เรียนรู้การกำหนดไปป์ไลน์ในรูปแบบโค้ดแล้ว:
pipeline { agent; stages }คือโครงสร้างพื้นฐานแบบประกาศ- ขั้นตอน
shเรียกใช้คำสั่ง ส่วนenvironmentและcredentials()จัดการการกำหนดค่า post,parallelและwhenเพิ่มความสามารถให้ไปป์ไลน์- ไปป์ไลน์หลายสาขาทำให้ทุกสาขาได้รับ CI โดยอัตโนมัติ
Jenkinsfile อยู่ร่วมกับโค้ดของคุณและพัฒนาไปพร้อมกัน
คำถามที่พบบ่อย
บทเรียน “Jenkins Pipeline เป็นโค้ดด้วย Jenkinsfile” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “Jenkins Pipeline เป็นโค้ดด้วย Jenkinsfile” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Docker & DevOps Fundamentals ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Docker & DevOps Fundamentals มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “Jenkins Pipeline เป็นโค้ดด้วย Jenkinsfile”
กำหนดขั้นตอนการสร้าง การทดสอบ และการนำส่งแบบประกาศใน Jenkinsfile ที่เก็บไว้ในที่เก็บโค้ด เพื่อให้ pipeline มีการควบคุมเวอร์ชันควบคู่ไปกับแอปพลิเคชัน คุณปฏิบัติ Docker & DevOps Fundamentals ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Docker & DevOps Fundamentals หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Docker & DevOps Fundamentals บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “Jenkins Pipeline เป็นโค้ดด้วย Jenkinsfile” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Docker & DevOps Fundamentals นี้ได้ไหม
ได้ บทเรียน Docker & DevOps Fundamentals ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- บทนำสู่ Jenkins
- การสร้างอิมเมจ Docker ด้วย Jenkins
- การปรับใช้อัตโนมัติด้วย Jenkins
- Jenkins Pipeline เป็นโค้ดด้วย Jenkinsfile