Design Pipeline - taritinth/sw-dev-tools-and-environments-project GitHub Wiki
Design Pipeline
ออกแบบ Pipeline สำหรับทำ CI/CD เพื่อให้สามารถผลิตและส่งมอบ Software ไปยังผู้ใช้ได้อย่างต่อเนื่อง เกิดความราบรื่น และลดต้นทุนด้านเวลาในระหว่างการพัฒนา Software โดยอาศัยหลักการของ Automation คือ การทำทุกอย่างให้เป็นไปอย่างอัตโนมัติ โดยพวกเราได้ออกแบบ Pipeline สำหรับ test โปรเจคคร่าว ๆ ดังนี้
- Pull Code
- Download Dependency
- Unit Testing
- Component Testing
- Code Coverage Report
Software Tool ที่นำมาใช้สำหรับสร้าง Pipeline คือ Jenkins
ที่ http://128.199.188.21:8080/ โดยมี 2 Pipelines ดังนี้
Frontend Pipeline
Pull Code
- ดึง Code ทั้งหมดจาก Branch
main
stage('Pull code') {
steps {
git branch: 'main', url: 'https://github.com/taritinth/sw-dev-tools-and-environments-project.git'
}
}
Download Dependency
- ดาวน์โหลดและติดตั้ง Dependency ของโปรเจคโดยใช้
npm install
stage('Download dependency') {
steps {
sh 'cd frontend && npm install'
}
}
Unit Testing
- ทดสอบ Code ในรูปแบบ unit test โดยใช้คำสั่ง
npm run test:unit
stage('Run unit test') {
steps {
sh 'cd frontend && npm run test:unit'
}
}
Component Testing
- ทดสอบ Code ในรูปแบบ component test โดยใช้คำสั่ง
npm run test:component
stage('Run component test') {
steps {
sh 'cd frontend && npm run test:component'
}
}
Code Coverage Report
- เป็นการ show code coverage โดยใช้ plugin OpenClover แสดงเป็น Graph report
stage("Code coverage report") {
steps {
clover(cloverReportDir: 'frontend/coverage', cloverReportFileName: 'clover.xml',
healthyTarget: [methodCoverage: 70, conditionalCoverage: 80, statementCoverage: 80],
unhealthyTarget: [methodCoverage: 50, conditionalCoverage: 50, statementCoverage: 50],
failingTarget: [methodCoverage: 0, conditionalCoverage: 0, statementCoverage: 0]
)
}
}
Backend Pipeline
Pull Code
- ดึง Code ทั้งหมดจาก Branch
main
stage('Pull code') {
steps {
git branch: 'main', url: 'https://github.com/taritinth/sw-dev-tools-and-environments-project.git'
}
}
Download Dependency
- ดาวน์โหลดและติดตั้ง Dependency ของโปรเจคโดยใช้
npm install
stage('Download dependency') {
steps {
sh 'cd backend && npm install'
}
}
Unit Testing
- ทดสอบ Code ในรูปแบบ unit test โดยใช้คำสั่ง
npm run test:db
stage('Run unit test') {
steps {
sh 'cd backend && npm run test:db'
}
}
Component Testing
- ทดสอบ Code ในรูปแบบ component test โดยใช้คำสั่ง
npm run test:api
stage('Run component test') {
steps {
sh 'cd backend && npm run test:api'
}
}
Code Coverage Report
- เป็นการ show code coverage โดยใช้ plugin OpenClover แสดงเป็น Graph report
stage("Code coverage report") {
steps {
clover(cloverReportDir: 'backend/coverage', cloverReportFileName: 'clover.xml',
healthyTarget: [methodCoverage: 70, conditionalCoverage: 80, statementCoverage: 80],
unhealthyTarget: [methodCoverage: 50, conditionalCoverage: 50, statementCoverage: 50],
failingTarget: [methodCoverage: 0, conditionalCoverage: 0, statementCoverage: 0]
)
}
}