Design Pipeline - panupongth148/Project-SW-DEV-TOOLS-AND-ENV-Group4 GitHub Wiki
Jenkins เป็น Software (Tool) ตัวนึงที่เอามาใช้ทำ CI/CD (Continuous Integration/Continuous Delivery) เพื่อให้เราสามารถที่จะผลิตและส่งมอบ Software ไปยังผู้ใช้ได้อย่างต่อเนื่อง เกิดความราบรื่น และลดต้นทุนด้านเวลาในระหว่างการพัฒนา Software โดยอาศัยหลักการของ Automation คือ การทำทุกอย่างให้เป็นไปอย่างอัตโนมัติ
Frontend
Pipeline Frontend
Pull Code
- Stage 1 : ทำการ Pull Code มาจาก Branch Main ของ Repository
stage('Pull Code') {
steps {
git branch: 'main', url: 'https://github.com/panupongth148/Project-SW-DEV-TOOLS-AND-ENV-Group4.git'
}
}
Download Dependencies
- Stage 2 : ทำการติดตั้ง Dependencies ของตัวโปรเจค โดยใช้คำสั่ง npm install
stage('Download Dependencies') {
steps {
dir("frontend") {
sh 'cd frontend && npm install'
}
}
}
Unit Test
- Stage 3 : ทำการทดสอบ Units test ตัวโปรเจค โดยใช้คำสั่ง npm unit-test
stage('Units Testing') {
steps {
dir("frontend/cypress") {
sh 'cd frontend && npm unit-test'
}
}
}
Component Test
- Stage 4 : ทำการทดสอบ Components test ตัวโปรเจค โดยใช้คำสั่ง npm com-test
stage('Conponents Testing') {
steps {
dir("frontend/cypress") {
sh 'cd frontend && npm com-test'
}
}
}
Deploy
- Stage 5 : ทำการ Deploy frontend ขึ้นไปยัง Firebase
stage('Deploy frontend') {
steps {
dir("frontend") {
sh 'npm run build'
sh 'firebase deploy'
}
}
}
End-to-End Test
- Stage 6 : ทำการทดสอบ End-to-End test ตัวโปรเจ็คโดยใช้คำสั่ง npm run cypress:run
stage('E2E test') {
steps {
echo 'cd frontend && npm run cypress:run'
}
}
Backend
Pipeline Backend
Pull Code
- Stage 1 : ทำการ Pull Code มาจาก Branch Main ของ Repository
stage('Pull code') {
steps {
git branch: 'main', url: 'https://github.com/panupongth148/Project-SW-DEV-TOOLS-AND-ENV-Group4.git'
}
}
Download Dependencies
- Stage 2 : ทำการติดตั้ง Dependencies ของตัวโปรเจค โดยใช้คำสั่ง npm install
stage('Download dependency') {
steps {
sh 'cd backend && npm install'
}
}
Component Test
- Stage 3 : ทำการทดสอบ Components test ตัวโปรเจค โดยใช้คำสั่ง npm test
stage('Run component test') {
steps {
sh 'cd backend && npm test'
}
}
Deploy
- Stage 4 : ทำการ Deploy backend
stage('Deployment') {
steps {
dir("backend") {
sh 'git add .'
sh 'git commit -m "prepare to deploy'
sh 'git push heroku master'
sh 'heroku open'
}
}
}