iT邦幫忙

2025 iThome 鐵人賽

DAY 10
0
Software Development

我們與Maven的距離系列 第 28

Day27 - CI/CD Pipelines with Maven, Gitea, and Jenkins

  • 分享至 

  • xImage
  •  

前言

我們講述了Mavne如何進行Java的構建部署不過都是靠我們在command line輸入指令,真正的開發部署流程你不會想要自己敲指令,這時你就需要CI/CD工具幫你完成一條龍的自動化服務

什麼是 CI/CD?

https://ithelp.ithome.com.tw/upload/images/20251012/20128084cP2cicaFYZ.png
註:圖片來自CI/CD: Continuous Integration and Continuous Delivery - geeksforgeeks

持續集成(Continuous Integration, CI)

Build pipline指程式碼提交 → 程式編譯 → 測試 → 打包這個環節

持續部署(Continuous Delivery/Deployment, CD)

Release pipline中Delivery指的是有的團隊會比較謹慎,會將最後部版至production的動作由人工手動完成,若無人工介入部版則稱為Deployment

簡言之CI/CD核心理念就是把SDLC自動化,常見的做法就是開發人員透過git提交程式碼到remote repository,發出pull request交由資深同仁審核後,merge 到main分支,透過git hook機制trigger CI/CD整合工具進行構建測試及部署,通常部到測試環境會是Deployment,正式環境則是Delivery交由人員介入確認一切後在部署至正式環境運行,畢竟production環境還是需要小心小心再小心

範例演示 - Gieta + Jenkins

  1. Gieta setting
  2. Jenkins setting
  3. project
    透過spring boot initializr創建一個web專案
    https://ithelp.ithome.com.tw/upload/images/20251012/20128084TXpX1eL5bf.png
    加入程式碼
@RestController
public class HelloController {

    @GetMapping("/hello")
    public String sayHello() {
        return "Hello, World!";
    }
}
  1. 加入git並推送到gieta server
  2. Jenkins Job設定
  3. gieta webhook設定
  4. 測試local commit push to remote repository trigger hook
  5. jenkins build and deploy

Reference


上一篇
Day26 - Docker Integration
下一篇
Day28 - Maven Wrapper
系列文
我們與Maven的距離29
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言