Jenkins在Linux上集成版本控制的完整流程
在集成前需確保Linux系統(如Ubuntu/CentOS)已安裝Java(Jenkins依賴,推薦JDK 8+)和版本控制工具(Git/SVN)。
sudo apt update && sudo apt install -y openjdk-11-jdk
java -version # 驗證安裝(需顯示版本信息)
sudo apt install -y git
git --version # 驗證安裝
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null
echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null
sudo apt update && sudo apt install -y jenkins
sudo systemctl start jenkins && sudo systemctl enable jenkins
http://<服務器IP>:8080
,通過日志獲取初始密碼(sudo cat /var/lib/jenkins/secrets/initialAdminPassword
),完成管理員賬號創建及推薦插件安裝。Jenkins需通過插件支持不同版本控制系統,常用插件包括Git Plugin(Git)、Subversion Plugin(SVN)、GitHub Plugin(GitHub集成)、GitLab Plugin(GitLab集成)。
Manage Jenkins > Manage Plugins > Available
,搜索插件名稱(如“Git Plugin”),勾選后點擊“Install without restart”。確保Jenkins能識別系統中的版本控制工具(如Git),需在Manage Jenkins > Global Tool Configuration
中設置:
/usr/bin/git
),無需修改;若未檢測,點擊“Add Git”手動指定可執行文件路徑。進入Jenkins首頁,點擊New Item
,輸入任務名稱(如“my-app-ci”),選擇Freestyle project
(簡單項目)或Pipeline
(復雜流水線),點擊“OK”。
https://github.com/your-repo/my-app.git
或SSH地址git@github.com:your-repo/my-app.git
)。*/main
表示main分支,默認**
表示所有分支)。H/5 * * * *
表示每5分鐘檢查一次)。Settings > Webhooks > Add webhook
,Payload URL填寫http://<Jenkins服務器IP>:8080/github-webhook/
,Content type選擇application/json
)。根據項目類型選擇構建工具,例如:
mvn clean install
或npm install && npm run build
)。clean package
)。可選步驟,用于處理構建結果,例如:
target/*.jar
)。junit.xml
文件)。點擊“Save”保存配置,然后點擊“Build Now”手動觸發構建,或等待觸發器(如Webhook、Poll SCM)自動觸發。構建完成后,可通過“Build History”查看日志及結果。
若需更靈活的流水線管理,可選擇Pipeline
項目類型,通過Pipeline script from SCM
選項直接從版本控制倉庫讀取Pipeline腳本(如Jenkinsfile
)。示例如下:
pipeline {
agent any
stages {
stage('Checkout') {
steps {
git branch: 'main', url: 'https://github.com/your-repo/my-app.git'
}
}
stage('Build') {
steps {
sh 'mvn clean package'
}
}
stage('Deploy') {
steps {
sh 'scp target/*.war user@server:/opt/tomcat/webapps/'
}
}
}
}
此方式可實現代碼托管庫與Jenkins的深度集成,便于團隊協作和管理。