日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【CI/CD1】jenkins

發布時間:2024/4/24 编程问答 66 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【CI/CD1】jenkins 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 1.jenkins:構建/測試/部署就是CICD工具即jenkins,但jenkins需要個人提供一臺運行jenkins的機器
  • 2.GitLab-Jenkins集成:Jenkins鏡像像nginx一樣
    • 2.1 Jenkins-docker配置(服務端):運行在8080端口上,機器只要安裝docker就能裝載image,運行容器
    • 2.2 Jenkins與GitLab配置(客戶端):docker ps查看正在運行,瀏覽器訪問http://10....:8080/
      • 2.2.1 GitLab與Jenkins Access Token配置
      • 2.2.2 新建jenkins job和配置job
      • 2.2.3 Jenkins pipeline script配置
      • 2.2.4 Jenkins&GitLab集成環境驗證


1.jenkins:構建/測試/部署就是CICD工具即jenkins,但jenkins需要個人提供一臺運行jenkins的機器


官網https://www.jenkins.io/下載jenkins,可選擇適合你自己系統的版本,也可選擇不依賴于系統的docker(前提本機安裝了docker)或war包(本機安裝了java),如下開啟服務端。

執行如上命令出現如下密碼,復制這串密碼,瀏覽器打開http://localhost:8080,粘貼到管理員密碼里。點擊安裝推薦插件,創建管理員用戶yu,密碼123,到這里jenkins已經安裝完成了(裝在win上),主要用來配合git服務器。

在Manage Jenkins中選擇Global Tool Configuration添加git路徑如下。

Create a job,選擇Freestyle project,命名為newjob,點擊配置。





如上如果選擇execute shell會出現系統找不到指定文件報錯。liunx 下使用execute shell,并加上#!/bin/bash,cat ./README.md。這里的腳本可以做的事很多,比如構建項目,做代碼測試等。如下點擊控制臺輸出,可查看fetch拉取github代碼并執行cat ./README.md腳本。

jenkins輪詢github,有更新就pull下來,然后執行輸入的構建腳本。

2.GitLab-Jenkins集成:Jenkins鏡像像nginx一樣

2.1 Jenkins-docker配置(服務端):運行在8080端口上,機器只要安裝docker就能裝載image,運行容器

在指定服務器上安裝docker客戶端,使用docker命令進行下載jenkins-docker版本如下:

docker pull jenkins/jenkins:2.54

運行jenkins-docker images,進入對應container,并相應安裝vim、docker、gcc/g++、make、cppcheck等調試、編譯環境,運行jenkins-docker命令如下:-name指定image名字。-p內部container和外部對應關系。-v外部地址和container內部地址對應關系,在container內部修改jenkins的話,外部也會更新。/etc/localtime時間同步。

docker run --privileged=true -d --name jenkins -p 8080:8080 -v /var/run/docker.sock:/var/run/docker.sock -v /home/ju/jenkins_home:/var/jenkins_home/ -v /etc/localtime:/etc/localtime jenkins/jenkins:v4

進入docker container內部命令如下:

docker exec -u 0 -it jenkins bash



保存docker images為tar包命令如下,-o(output):

docker save –o jenkins_v4.tar jenkins/jenkins:v4

加載tar包為docker images命令如下,和上面相反:

docker load -input jenkins_v4.tar

2.2 Jenkins與GitLab配置(客戶端):docker ps查看正在運行,瀏覽器訪問http://10…:8080/

2.2.1 GitLab與Jenkins Access Token配置

GitLab配置Access Token,用于jenkins連接GitLab獲取GitLab API接口,GitLab頁面->用戶->Settings->Access Tokens。

生成GitLab個人準入秘鑰,設置Name,Expires at默認不填永久有效,Scopes全部勾選后,點擊Create personal access token,生成后,頁面上會提示"Your new personal access token has been created"。

Jenkins配置GitLab,在jenkins界面點擊Manage Jenkins->Configure System:

Jenkins配置界面查找GitLab,添加connect name與Gitlab host URL:

添加Credentials,點擊Add->jenkins,進行添加對應的秘鑰,Kind選擇GitLab API Token,API Token添加GitLab personal api token,ID添加為jenkins_gitlab后,點擊Add。

選擇Credentials為GitLab API token,點擊Test Connection,驗證jenkins與GitLab是否建立連接,顯示為”Success”。

2.2.2 新建jenkins job和配置job

在jenkins主界面點擊New Item,可新建job或者復制已有job,此處直接復制已有job,拷貝后的job不要運行build,避免回填錯誤數據到GitLab。

項目名為example的Jenkins pipeline script同下面導入的,可自行修改。

選擇對應job后點擊Configure進行job配置,在job配置界面查到Build Triggers,進行配置job觸發條件,勾選“Build when a change is pushed to GitLab. GitLab webhook URL: http://10.75.92.229:8080/project/sw61_bsp_build”,勾選狀態如下圖。





2.2.3 Jenkins pipeline script配置

1) 環境模塊導入, groovy語言 import hudson.*2) 清空工作空間 node(""){stage("clear workspace"){cleanWs()} }3) 下載源碼 node(""){stage("download code"){echo "download code"if (env.gitlabSourceBranch == null){ //當gitlab過來觸發的job的話,環境變量上就會有gitlabSourceBranch字串git branch: "sw61", credentialsId: '18f53bc3-dc50-4178-acde-d628264ee453', url: 'https://gitlab-dbd...com/bsp_diag/prj_bsp.git' // null說明不是gitlab觸發}else{ //gitlab做了push或merge操作時觸發,credentialsId就是Access Tokensgit branch: env.gitlabSourceBranch, credentialsId: '18f53bc3-dc50-4178-acde-d628264ee453', url: env.gitlabSourceRepoHttpUrl}} }4) 源碼cppcheck掃描 try{node(""){stage("cppcheck"){echo "cppcheck starting"pwd()sh "/home/cppcheck-1.75/cppcheck 4 --enable=all --inconclusive --xml --xml-version=2 "+env.WORKSPACE+" 2> cppcheck.xml"publishCppcheck ignoreBlankFiles: true, pattern: 'cppcheck.xml'def cppcheck_file_obj = new File(env.WORKSPACE+"/cppcheck.xml")if (cppcheck_file_obj.isFile()){echo "cppcheck.xml file exist"result = sh returnStdout: true ,script: "cat "+env.WORKSPACE+"/cppcheck.xml"if (result == ""){echo "analyse cppcheck.xml failure,cppcheck.xml is empty"currentBuild.result="FAILURE"}else{echo "analyse cppcheck.xml"cppcheck_result = sh returnStdout: true ,script: "cat "+env.WORKSPACE+"/cppcheck.xml | grep 'cppcheck version'"if(cppcheck_result == ""){echo "analyse cppcheck.xml failure,cppcheck.xml format error"currentBuild.result="FAILURE"}else{final_result = sh returnStdout: true ,script: '''cat '''+env.WORKSPACE+'''/cppcheck.xml | grep severity=\\"error\\"'''if(final_result == ""){echo "analyse cppcheck.xml pass"}else{echo "analyse cppcheck.xml failure,cppcheck.xml has error"currentBuild.result="FAILURE"}}}}else{echo "cppcheck.xml file not exist"currentBuild.result="FAILURE"}}} }catch(e) {echo "cppcheck failure"currentBuild.result="FAILURE" }5) 源碼編譯 try{node(""){stage("compile code"){echo "compile code"sh "make" //在docker里編譯}} }catch(e) {echo "compile code failure"currentBuild.result="FAILURE" }6) 驗證掃描與編譯結果,成功后歸檔相關文件 node(""){stage("archive"){echo "archive"if(currentBuild.result == 'FAILURE') {echo "Something unexpected happened. Please inspect Jenkins logs. Skip archive."}else{sh '''mkdir buildcp cppcheck.xml build/cp *.ko build/tar -zcf archive.tar.gz build/'''archiveArtifacts artifacts: '*.tar.gz', followSymlinks: false}} }7) 根據掃描和編譯結果,回填數據到GitLab stage("commit gitlab"){echo "commit gitlab"if(currentBuild.result == 'FAILURE') {updateGitlabCommitStatus(name: 'sw61_bsp_build', state: 'failed')}else{updateGitlabCommitStatus(name: 'sw61_bsp_build', state: 'success')} }

2.2.4 Jenkins&GitLab集成環境驗證

GitLab推送修改至倉庫新分支,驗證push event可觸發jenkins job,jenkins回填數據至GitLab。




與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的【CI/CD1】jenkins的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 深夜视频一区二区 | 日日摸日日碰 | 色女人av | www.日本在线视频 | 嫩草嫩草嫩草 | 国产成人综合在线观看 | 欧美在线影院 | 久久艹中文字幕 | 强行挺进白丝老师翘臀网站 | 亚洲国产精品va在线看黑人 | 国产又粗又黄视频 | 超碰成人福利 | www.国产一区二区三区 | 69亚洲精品久久久蜜桃小说 | 亚洲一区二区人妻 | 人人99 | 亚洲av高清一区二区三区 | 美女扒开腿男人爽桶 | 久久精品网址 | 久久无码精品丰满人妻 | 久久亚洲国产成人精品性色 | 国产依人 | 国产熟妇搡bbbb搡bbbb搡 | 色小姐com| 污av | missav在线 | 午夜视频在线免费 | 色婷婷久久一区二区三区麻豆 | 老牛影视少妇在线观看 | 国产一区二区三区在线免费 | 国产成人av一区二区三区 | 一区二区三区四区免费 | 欧美日韩高清一区二区 国产亚洲免费看 | 视频区图片区小说区 | 欧美13p | 国模私拍视频在线 | 国产欧美二区 | 日本顶级大片 | 最新国产露脸在线观看 | 涩涩涩999 | 国产农村妇女精品一区 | 中文字幕 日韩 欧美 | 国产91嫩草 | 黑人乱码一区二区三区av | 欧美日韩国产中文字幕 | 国产视频四区 | 日韩高清一二三区 | 涩涩爱影院| 91尤物视频在线观看 | 精品成人av一区二区三区 | 亚洲国产精品久久 | www.五月天激情 | 内射中出日韩无国产剧情 | 特黄aaaaaaaaa毛片免费视频 | 韩国福利一区 | 久久99激情| 中文字幕一区二 | 欧美国产精品 | 国产一区影院 | 亚洲综合在线网 | 欧美xxxx83d| 免费色网站 | 在线不卡日韩 | a黄色片| www.亚洲激情 | 日韩精品福利视频 | 成人拍拍视频 | 亚洲在线免费视频 | 日本一区二区高清视频 | 91精品国产综合久久福利软件 | 亚洲乱码久久 | 国产黄色三级 | 久久mm | 你懂的欧美 | 国产一区二区三区精品视频 | 免费黄色在线播放 | 福利视频不卡 | 久久精品婷婷 | 丰满少妇在线观看网站 | 国产精品福利一区二区 | 欧美日韩一卡二卡 | 中文字幕伊人 | 国产啊v在线观看 | 亚洲成人一区二区三区 | 欧美性受黑人性爽 | 亚洲欧洲无码一区二区三区 | 国产成人精品一区二区三区视频 | 国产网站免费看 | 美腿丝袜亚洲综合 | 蜜桃av鲁一鲁一鲁一鲁俄罗斯的 | 91人人爽| 亚洲专区在线播放 | 污片在线观看 | 日本不卡免费 | 黄色av免费网站 | 中文字幕va | 麻豆视 | 嫩草99| 国产亚洲天堂 |