Design Pipeline - panupongth148/Project-SW-DEV-TOOLS-AND-ENV-Group4 GitHub Wiki

pipeback

Jenkins เป็น Software (Tool) ตัวนึงที่เอามาใช้ทำ CI/CD (Continuous Integration/Continuous Delivery) เพื่อให้เราสามารถที่จะผลิตและส่งมอบ Software ไปยังผู้ใช้ได้อย่างต่อเนื่อง เกิดความราบรื่น และลดต้นทุนด้านเวลาในระหว่างการพัฒนา Software โดยอาศัยหลักการของ Automation คือ การทำทุกอย่างให้เป็นไปอย่างอัตโนมัติ

Frontend

Pipeline Frontend

PipelineFrontend

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

image

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'
        }
    }
}