国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

北京 網(wǎng)站 優(yōu)化足球比賽今日最新推薦

北京 網(wǎng)站 優(yōu)化,足球比賽今日最新推薦,我想創(chuàng)建一個網(wǎng)站,鋃川市住房和城鄉(xiāng)建設(shè)局網(wǎng)站公告Jenkins 第三章 Jenkins Git Maven 自動化部署配置 十、幾種構(gòu)建方式 快照依賴構(gòu)建/Build whenever a SNAPSHOT dependency is built 當(dāng)依賴的快照被構(gòu)建時執(zhí)行本job 觸發(fā)遠程構(gòu)建 (例如,使用腳本) 遠程調(diào)用本job的restapi時執(zhí)行本job job依賴構(gòu)建/Build after other proj…

Jenkins

第三章 Jenkins + Git + Maven 自動化部署配置

十、幾種構(gòu)建方式

  • 快照依賴構(gòu)建/Build whenever a SNAPSHOT dependency is built
    • 當(dāng)依賴的快照被構(gòu)建時執(zhí)行本job
  • 觸發(fā)遠程構(gòu)建 (例如,使用腳本)
    • 遠程調(diào)用本job的restapi時執(zhí)行本job
  • job依賴構(gòu)建/Build after other projects are built
    • 當(dāng)依賴的job被構(gòu)建時執(zhí)行本job
  • 定時構(gòu)建/Build periodically
    • 使用cron表達式定時構(gòu)建本job
  • 向GitHub提交代碼時觸發(fā)Jenkins自動構(gòu)建/GitHub hook trigger for GITScm polling
    • Github-WebHook出發(fā)時構(gòu)建本job
  • 定期檢查代碼變更/Poll SCM
    • 使用cron表達式定時檢查代碼變更,變更后構(gòu)建本job

1. 觸發(fā)遠程構(gòu)建/gitlab上改動自動構(gòu)建

代碼改動自動可以使用gitlab的webhook回調(diào)鉤子調(diào)起Jenkins的啟動任務(wù)接口

在構(gòu)建觸發(fā)器中配置接口和token

在這里插入圖片描述

2. 定時構(gòu)建

Jenkins cron表達式

標(biāo)準(zhǔn)cron

https://crontab.guru

Jenkins cron不是標(biāo)準(zhǔn)的cron表達式

第一個 * 表示每個小時的第幾分鐘,取值0~59H * * * *
H:每小時執(zhí)行一次第二顆 * 表示小時,取值0~23* 15 * * * 表示每天下午3點
* 1 * * *  表示每天凌晨1點第三顆 * 表示一個月的第幾天,取值1~31
* 1 5 * *  表示每月5日凌晨1點第四顆 * 表示第幾月,取值1~12
* 15 5 1 *  表示每年幾月執(zhí)行第五顆 * 表示一周中的第幾天,取值0~7,其中0和7代表的都是周日

“/”

表示每隔多長時間,比如 */10 * * * * 表示 每隔10分鐘

“H”

hash散列值,以job名取值,獲取到以job名為入?yún)⒌奈ㄒ恢?#xff0c;相同名稱值也相同,這個偏移量會和實際時間相加,獲得一個真實的運行時間

意義在于:不同的項目在不同的時間運行,即使配置的值是一樣的,比如 都是15 * * * * ,表示每個小時的第15分鐘開始執(zhí)行任務(wù),那么會造成同一時間內(nèi)在Jenkins中啟動很多job,換成H/15 * * * *,那么在首次啟動任務(wù)時,會有隨機值參與進來,有的會在17分鐘啟動 有的會在19分鐘啟動,隨后的啟動時間也是這個值。這樣就能錯開相同cron值的任務(wù)執(zhí)行了。

H的值也可以設(shè)置范圍

H * * * *表示一小時內(nèi)的任意時間

*/10 * * * *每10分鐘

H/10 * * * *每10分鐘,可能是7,17,27,起始時間hash,步長不變

45 3 * * 1-6 每個周一至周六,凌晨3點45 執(zhí)行1次

45 3-5 * * 1-6 每個周一至周六,凌晨3點45 ,凌晨4點45,凌晨5點45 各執(zhí)行1次

H(40-48) 3-5 * * 1-6 在40~48之間取值 其他同上

45 3-5/2 * * 1-6 每個周一至周六,凌晨3點45 ,凌晨5點45 各執(zhí)行1次

45 0-6/2 * * 1-6 * * 1-6 0點開始,每間隔2小時執(zhí)行一次 0:45、2:45、4:45

3. 源碼變更構(gòu)建

使用Poll SCM 方式與Build periodically一樣

會主動定期檢查代碼托管服務(wù)器上是否有變化,一旦發(fā)生變化執(zhí)行job構(gòu)建

4. 測試報告郵件通知

十一、自動化部署到docker容器中

1. docker外掛目錄

docker run -d -p 8080:8080 --name demo-out -v /root/jarfile/demo-1-0.0.1-SNAPSHOT.jar:/app.jar openjdk:11 java -jar app.jar

2. 打包到容器內(nèi)

2.1 準(zhǔn)備一臺測試服務(wù)器 docker環(huán)境
2.2 準(zhǔn)備支持jdk的鏡像
FROM openjdk:11
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
RUN javac Main.java
CMD ["java", "Main"]
2.3 把jar包打包到容器內(nèi)

dockerfile

FROM openjdk:11
EXPOSE 8080WORKDIR /rootADD jarfile/demo*.jar /root/app.jar
ENTRYPOINT ["java","-jar","/root/app.jar"]

打包鏡像

docker build -t demo .

配置國內(nèi)鏡像

修改/etc/docker/daemon.json文件,沒有的話創(chuàng)建一個

寫入

{"registry-mirrors": ["https://ustc-edu-cn.mirror.aliyuncs.com","http://hub-mirror.c.163.com","https://registry.aliyuncs.com"]
}

重啟服務(wù)

systemctl daemon-reload
systemctl restart docker

十二、Jenkins集群/并發(fā)構(gòu)建

集群化構(gòu)建可以有效提升構(gòu)建效率,尤其是團隊項目比較多或是子項目比較多的時候,可以并發(fā)在多臺機器上執(zhí)行構(gòu)建。

  • 勾選 在必要的時候并發(fā)構(gòu)建

第四章 流水線 pipeline

流水線既能作為任務(wù)的本身,也能作為Jenkinsfile

使用流水線可以讓我們的任務(wù)從ui手動操作,轉(zhuǎn)換為代碼化,像docker的dockerfile一樣,從shell命令到配置文件,更適合大型項目,可以讓團隊其他開發(fā)者同時參與進來,同時也可以編輯開發(fā)Jenkins web ui不能完成的更復(fù)雜的構(gòu)建邏輯,作為開發(fā)者可讀性也更好。

一、完整語法

5個必備的組成部分

pipeline:整條流水線
agent:指定執(zhí)行器
stages:所有階段
stage:某一階段,可有多個
steps:階段內(nèi)的每一步,可執(zhí)行命令

二、測試腳本

1. 基礎(chǔ)框架

pipeline {agent anystages {stage('拉取代碼') {steps {echo '拉取代碼完成'}}stage('執(zhí)行構(gòu)建') {steps {echo '執(zhí)行構(gòu)建完成'}}}post {always {echo "完成"}failure {echo "失敗"}}
}

2. 階段視圖 Stage View

2.1 blue ocean可視化界面

全新的流水線控制ui,可重復(fù)執(zhí)行某階段代碼

插件中心搜索blue ocean安裝即可

2.2 post

流水線完成后可執(zhí)行的任務(wù)

  • always 無論流水線或者階段的完成狀態(tài)。
  • changed 只有當(dāng)流水線或者階段完成狀態(tài)與之前不同時。
  • failure 只有當(dāng)流水線或者階段狀態(tài)為"failure"運行。
  • success 只有當(dāng)流水線或者階段狀態(tài)為"success"運行。
  • unstable 只有當(dāng)流水線或者階段狀態(tài)為"unstable"運行。例如:測試失敗。
  • aborted 只有當(dāng)流水線或者階段狀態(tài)為"aborted "運行。例如:手動取消。
2.3 agent

可以指定執(zhí)行節(jié)點

label 指定運行job的節(jié)點標(biāo)簽

any 不指定,由Jenkins分配

pipeline {agent {node {label "jenkins-02"}}stages {stage('拉取代碼') {steps {sh """sleep 10"""echo '拉取代碼完成'}}stage('執(zhí)行構(gòu)建') {steps {echo '執(zhí)行構(gòu)建完成'}}}post {always {echo "完成"}failure {echo "失敗"}}
}

3. pipeline中執(zhí)行自動化構(gòu)建

pipeline {agent anytools {maven "maven3"}stages {stage("拉取代碼") {steps {git branch: 'main', credentialsId: 'gitlab', url: 'http://192.168.44.103/root/java-project.git'echo '拉取成功'}}stage("執(zhí)行構(gòu)建") {steps {//    sh "mvn --version"sh """ cd demo-1mvn clean package"""echo '構(gòu)建完成'}}stage("clean test server"){steps{sshPublisher(publishers: [sshPublisherDesc(configName: 'testserver', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''rm -rf *docker stop demo
docker rm demo
docker rmi demo
''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '/root')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])}}stage("發(fā)送jar包到測試服務(wù)器") {steps {sshPublisher(publishers: [sshPublisherDesc(configName: 'testserver', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/jarfile', remoteDirectorySDF: false, removePrefix: 'demo-1/target', sourceFiles: '**/demo*.jar'), sshTransfer(cleanRemote: false, excludes: '', execCommand: '''docker build -t demo .
docker run -d -p 8080:8080 --name demo demo''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/', remoteDirectorySDF: false, removePrefix: 'demo-1/docker', sourceFiles: 'demo-1/docker/dockerfile')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])echo 'jar send over!'}}}
}

三、聲明式流水線

好處

  • 更像是在Jenkins web ui中的操作
  • 可讀性比較高
  • 可以使用blue ocean自動生成
  • 支持語法檢查

壞處

  • 代碼邏輯能力比腳本式弱,不能完成特別復(fù)雜的任務(wù)

四、腳本式流水線

好處

  • 更少的代碼和弱規(guī)范要求
  • 更靈活的自定義代碼操作
  • 不受約束,可以構(gòu)建特別復(fù)雜的工作流和流水線

壞處

  • 讀寫對編程要求比較高
  • 比聲明式流水線代碼更復(fù)雜
http://m.aloenet.com.cn/news/1512.html

相關(guān)文章:

  • 響應(yīng)式網(wǎng)站切圖泉州百度競價公司
  • 在線制作圖片加文字的軟件九江seo優(yōu)化
  • b站到底是哪個網(wǎng)站常見的網(wǎng)絡(luò)營銷方式有哪幾種
  • 購物商城網(wǎng)站設(shè)計方案愛站關(guān)鍵詞挖掘查詢工具
  • 深圳電器公司網(wǎng)頁seo
  • 做游戲CG分享的網(wǎng)站店鋪推廣
  • 網(wǎng)站訂單系統(tǒng)模板下載西地那非片吃了能延時多久
  • 網(wǎng)站建設(shè)公司的服務(wù)器杭州seo全網(wǎng)營銷
  • 建站公司合肥百度的關(guān)鍵詞優(yōu)化
  • wordpress頁面多打開空白頁seo服務(wù)運用什么技術(shù)
  • 畢設(shè)做網(wǎng)站答辯稿外貿(mào)營銷策略都有哪些
  • 云虛擬主機做二個網(wǎng)站網(wǎng)站查詢域名ip
  • 網(wǎng)站充值平臺怎么做的湖南百度推廣公司
  • 怎么在手機上制作網(wǎng)站嗎網(wǎng)上競價平臺
  • 網(wǎng)站開發(fā)過程無錫網(wǎng)站排名公司
  • 網(wǎng)站推廣需要域名遷移嘉興seo外包服務(wù)商
  • 土巴兔裝修貴嗎seo的最終是為了達到
  • 網(wǎng)站建設(shè)的基礎(chǔ)知識與維護百度關(guān)鍵詞廣告怎么收費
  • 設(shè)置自己的網(wǎng)站三亞百度推廣公司電話
  • 翠竹營銷網(wǎng)站設(shè)計知名的seo快速排名多少錢
  • 西安網(wǎng)站策劃設(shè)計中國移動有免費的視頻app
  • 網(wǎng)站規(guī)劃怎么寫英文seo兼職
  • php企業(yè)網(wǎng)站開發(fā)框架電商產(chǎn)品推廣方案
  • 環(huán)球影城漫游卡持卡人是什么意思重慶seo優(yōu)化公司
  • 鄭州 做網(wǎng)站優(yōu)化大師官網(wǎng)下載安裝
  • 國內(nèi)機加工訂單百度seo公司一路火
  • 東莞建設(shè)質(zhì)監(jiān)網(wǎng)站網(wǎng)站制作需要多少錢
  • wordpress做社交網(wǎng)站嗎放心網(wǎng)站推廣優(yōu)化咨詢
  • 嬰兒衣服做的網(wǎng)站域名注冊管理機構(gòu)
  • 怎么給領(lǐng)導(dǎo)做網(wǎng)站分析網(wǎng)站鏈接查詢