溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

基于Jenkins+Maven+Gitea+Nexus怎么搭建CICD環(huán)境

發(fā)布時(shí)間:2022-01-12 20:15:07 來(lái)源:億速云 閱讀:233 作者:iii 欄目:開(kāi)發(fā)技術(shù)

本文小編為大家詳細(xì)介紹“基于Jenkins+Maven+Gitea+Nexus怎么搭建CICD環(huán)境”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“基于Jenkins+Maven+Gitea+Nexus怎么搭建CICD環(huán)境”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來(lái)學(xué)習(xí)新知識(shí)吧。

    在傳統(tǒng)的單體軟件架構(gòu)中,軟件開(kāi)發(fā)、測(cè)試、運(yùn)維都是以單個(gè)進(jìn)程為單位。

    當(dāng)拆分成微服務(wù)之后,單個(gè)應(yīng)用可以被拆分成多個(gè)微服務(wù),比如用戶系統(tǒng),可以拆分成基本信息管理、積分管理、訂單管理、用戶信息管理、合同管理等多個(gè)微服務(wù)模塊。

    這個(gè)時(shí)候?qū)γ總€(gè)模塊分別打包、發(fā)布運(yùn)行、開(kāi)發(fā)、測(cè)試、運(yùn)維的,對(duì)于測(cè)試、運(yùn)維的工作量會(huì)極大增加。

    在這個(gè)過(guò)程中,如果缺乏自動(dòng)化測(cè)試、自動(dòng)化集成/部署、自動(dòng)運(yùn)維等能力,帶來(lái)的影響是

    1. 軟件交付周期增加

    2. 多環(huán)境部署的情況下,各個(gè)環(huán)境差異帶來(lái)的問(wèn)題。

    3. 人工運(yùn)維容易給環(huán)境帶來(lái)一些不可重現(xiàn)的影響,而且一旦發(fā)生運(yùn)維錯(cuò)誤又比較難立刻恢復(fù),造成故障處理時(shí)間較長(zhǎng)。并且對(duì)于運(yùn)維人員的能力要求較高

    所有的這些問(wèn)題,會(huì)導(dǎo)致軟件交付時(shí)間變長(zhǎng)、風(fēng)險(xiǎn)增加、以及運(yùn)維成本增加等問(wèn)題。因此,我們需要一套自動(dòng)化部署體系,來(lái)構(gòu)建一個(gè)CICD的模型。

    基于Jenkins+Maven+Gitea+Nexus怎么搭建CICD環(huán)境

    普通Jar包的運(yùn)行方式

    1.使用maven packagenohup java -jar ${APP_NAME} > goods-service.log 2>&1 &

    2.nohup用途:不掛斷地運(yùn)行命令

    • &用途,在后臺(tái)運(yùn)行

    • 2>&1: 在bash中:

    0 代表STDIN_FILENO 標(biāo)準(zhǔn)輸入(一般是鍵盤(pán)),

    1 代表STDOUT_FILENO 標(biāo)準(zhǔn)輸出(一般是顯示屏,準(zhǔn)確的說(shuō)是用戶終端控制臺(tái)),

    2 三代表STDERR_FILENO (標(biāo)準(zhǔn)錯(cuò)誤(出錯(cuò)信息輸出)。

    • 2>&1就是用來(lái)將標(biāo)準(zhǔn)錯(cuò)誤2重定向到標(biāo)準(zhǔn)輸出1中的。此處1前面的&就是為了讓bash將1解釋成標(biāo)準(zhǔn)輸出而不是文件1。至于最后一個(gè)&,則是讓bash在后臺(tái)執(zhí)行。

    > 直接把內(nèi)容生成到指定文件

    搭建Nexus私服環(huán)境

    Nexus是一個(gè)強(qiáng)大的Maven倉(cāng)庫(kù)管理器,它極大地簡(jiǎn)化了本地內(nèi)部倉(cāng)庫(kù)的維護(hù)和外部倉(cāng)庫(kù)的訪問(wèn)。Nexus是一套“開(kāi)箱即用”的系統(tǒng)不需要數(shù)據(jù)庫(kù),它使用文件系統(tǒng)加Lucene來(lái)組織數(shù)據(jù)。

    Maven私服環(huán)境需要用sonatype nexus,下面我們從安裝和配置進(jìn)行詳細(xì)分析

    部署服務(wù)器: 192.168.8.138

    下載和安裝

    訪問(wèn):https://sonatype-download.global.ssl.fastly.net/repository/downloads-prod-group/3/nexus-3.37.0-01-unix.tar.gz地址,下載Sonatype Nexus。

    解壓縮到/data/program目錄下

    [root@localhost program]# tar -zxvf nexus-3.37.0-01-unix.tar.gz

    進(jìn)入到${NEXUS_HOME}\bin目錄,執(zhí)行下面命令啟動(dòng)Nexus

    ./nexus start

    安裝Maven

    1.下載Maven: https://dlcdn.apache.org/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.tar.gz

    2.配置Maven 和JDK 環(huán)境變量。

    export JAVA_HOME=/data/program/jdk1.8.0_241
    export MAVEN_HOME=/data/program/apache-maven-3.8.4
    export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

    3.進(jìn)入到${NEXUS_HOME}\bin目錄,執(zhí)行下面命令啟動(dòng)Nexus

    用./nexus start啟動(dòng),后臺(tái)啟動(dòng),啟動(dòng)成功后可以訪問(wèn)

    用./nexus run啟動(dòng),前臺(tái)啟動(dòng),顯示日志,啟動(dòng)后可以訪問(wèn)

    ./nexus start

    啟動(dòng)時(shí),會(huì)有如下提示,這個(gè)是建議我們使用非root賬戶來(lái)訪問(wèn)。

    WARNING: ************************************************************
    WARNING: Detected execution as "root" user.  This is NOT recommended!
    WARNING: ************************************************************

    4.訪問(wèn):http://localhost:8081訪問(wèn)Nexus倉(cāng)庫(kù)

    如果想配置 nexus 的應(yīng)用在本地啟動(dòng)的 JVM參數(shù),可以在 nexus.vmoptions

    如果想改變 nexus 的 端口號(hào),可以在 nexus-default.properties

    登錄控制臺(tái)

    1.默認(rèn)登錄的帳號(hào)是admin,密碼在會(huì)提示你在:/data/program/sonatype-work/nexus3/admin.password文件中。

    基于Jenkins+Maven+Gitea+Nexus怎么搭建CICD環(huán)境

    2.內(nèi)容如下,直接復(fù)制該內(nèi)容登錄即可。

    090849ac-cea7-4353-b2c8-59b2bceadb50

    Nexus控制臺(tái)說(shuō)明

    進(jìn)入Nexus控制臺(tái)的Browse菜單,可以看到四種倉(cāng)庫(kù)類(lèi)型:

    1)maven-central: maven中央庫(kù),默認(rèn)從https://repo1.maven.org/maven2/拉取jar

    2)maven-releases: 私庫(kù)發(fā)行版jar

    3)maven-snapshots:私庫(kù)快照(調(diào)試版本)jar

    4)maven-pubpc: 倉(cāng)庫(kù)分組,把上面三個(gè)倉(cāng)庫(kù)組合在一起對(duì)外提供服務(wù),在本地maven基礎(chǔ)配置settings.xml中使用。

    基于Jenkins+Maven+Gitea+Nexus怎么搭建CICD環(huán)境

    Nexus默認(rèn)的倉(cāng)庫(kù)類(lèi)型有以下四種:(上面的名字可以隨便取,關(guān)鍵是它對(duì)應(yīng)的是什么倉(cāng)庫(kù)類(lèi)型)

    1)group(倉(cāng)庫(kù)組類(lèi)型):又叫組倉(cāng)庫(kù),用于方便開(kāi)發(fā)人員自己設(shè)定的倉(cāng)庫(kù);

    2)hosted(宿主類(lèi)型):內(nèi)部項(xiàng)目的發(fā)布倉(cāng)庫(kù)(內(nèi)部開(kāi)發(fā)人員,發(fā)布上去存放的倉(cāng)庫(kù));

    3)proxy(代理類(lèi)型): 從遠(yuǎn)程中央倉(cāng)庫(kù)中尋找數(shù)據(jù)的倉(cāng)庫(kù)(可以點(diǎn)擊對(duì)應(yīng)的倉(cāng)庫(kù)的Configuration頁(yè)簽下Remote Storage Location屬性的值即被代理的遠(yuǎn)程倉(cāng)庫(kù)的路徑);

    4)virtual(虛擬類(lèi)型): 虛擬倉(cāng)庫(kù)(這個(gè)基本用不到,重點(diǎn)關(guān)注上面三個(gè)倉(cāng)庫(kù)的使用);

    Nuget是用于微軟.NET開(kāi)發(fā)平臺(tái)的軟件包管理器,和Maven類(lèi)似。

    目錄說(shuō)明

    nexus-3.34.0-01 目錄

    • bin 包含nexus的啟動(dòng)腳本和相關(guān)配置

    • etc jetty、karaf等配置文件

    • jre jre環(huán)境

    • lib java架包庫(kù)

    • public 關(guān)于nexus應(yīng)用在本地跑起來(lái)所需要的資源

    • system 應(yīng)用所有的插件和組件

    • LICENSE.txt 和 NOTICE.txt 版權(quán)聲明和法律細(xì)則

    sonatype-work\nexus3 目錄

    • blobs/ 創(chuàng)建blob的默認(rèn)路徑,當(dāng)然也可以重新指定

    • cache/ 當(dāng)前緩存的karaf包的信息

    • db/ OrientDB數(shù)據(jù)庫(kù)的數(shù)據(jù),用于存儲(chǔ)nexus的元數(shù)據(jù)的數(shù)據(jù)庫(kù)

    • elasticsearch/ 當(dāng)前配置的Elasticsearch狀態(tài)

    • etc/ 大概是運(yùn)行時(shí)配置狀態(tài)和關(guān)于資源庫(kù)的自定義的相關(guān)的東西

    • health-check/ 看目錄,健康檢查的相關(guān)報(bào)告的存儲(chǔ)目錄吧

    • keystores/ 自動(dòng)生成的關(guān)于資源庫(kù)的ID主鍵

    • log/ 運(yùn)行實(shí)例生成的日志文件,也有日志文件的壓縮包,貌似是每天都會(huì)生成日志文件,你可以定期刪除老的日志文件

    • tmp/ 用于存儲(chǔ)臨時(shí)文件的目錄

    Nexus設(shè)置成系統(tǒng)服務(wù)

    按照以下步驟執(zhí)行

    1.修改${NEXUS_HOME}\bin\nexus這個(gè)腳本,增加下面的配置

    INSTALL4J_JAVA_HOME_OVERRIDE=/data/program/jdk1.8.0_241

    2.設(shè)置軟鏈接

    [root@localhost bin]# ln -s /data/program/nexus-3.37.0-01/bin/nex

    3.通過(guò)chkconfig方式配置系統(tǒng)服務(wù)

    cd /etc/init.d
    sudo chkconfig --add nexus #添加nexus服務(wù)
    sudo chkconfig --levels 345 nexus on #設(shè)置開(kāi)啟自啟動(dòng)

    4.啟動(dòng)和停止服務(wù)

    sudo service nexus start #開(kāi)啟服務(wù)
    service nexus status #查看服務(wù)狀態(tài)

    搭建Gitea環(huán)境

    參考文檔: https://docs.gitea.io/zh-cn/install-from-binary/

    1.安裝git環(huán)境: yum -y install git

    2.通過(guò)下面的命令下載pnux中的安裝包到/data/program/gitea目錄下。

    wget -O gitea https://dl.gitea.io/gitea/1.15.7/gitea-1.15.7-linux-amd64

    3.執(zhí)行chmod +x gitea命令,授予執(zhí)行權(quán)限

    4.執(zhí)行下面這個(gè)命令運(yùn)行g(shù)itea

    ./gitea web

    安裝成系統(tǒng)服務(wù)(重要)

    1.創(chuàng)建Git用戶

    sudo useradd \
       --system \
       --shell /bin/bash \
       --comment 'Git Version Control' \
       --create-home \
       --home /home/git \
       git

    2.下載二進(jìn)制文件

    wget -O gitea https://dl.gitea.io/gitea/1.15.7/gitea-1.15.7-linux-amd64

    3.根據(jù)gitea官方推薦,按照以下方式配置gitea的安裝目錄

    把下載的文件移動(dòng)到/usr/local/bin目錄

    sudo mv /data/program/gitea /usr/local/bin

    使二進(jìn)制文件可執(zhí)行:

    chmod +x /usr/local/bin/gitea

    按照一下命令創(chuàng)建必要目錄并設(shè)置權(quán)限

    sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}
    sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}
    sudo chown git: /var/lib/gitea/{data,indexers,custom,public,log}
    sudo chmod 750 /var/lib/gitea/{data,indexers,log}
    sudo mkdir /etc/gitea
    sudo chown root:git /etc/gitea
    sudo chmod 770 /etc/gitea

    根據(jù)Gitea官方提供的Systemd Unit文件,配置系統(tǒng)服務(wù)。

    sudo wget https://raw.githubusercontent.com/go-gitea/gitea/master/contrib/systemd/gitea.service -P /etc/systemd/system/

    注意,gitea.service, 不能通過(guò)wget下載,需要去github上復(fù)制

    完成上述過(guò)程后,通過(guò)下面命令開(kāi)啟自動(dòng)啟動(dòng)

    systemctl enable gitea
    systemctl start gitea

    4.安裝啟動(dòng)完成后,訪問(wèn):http://192.168.8.136:3000,配置數(shù)據(jù)庫(kù)相關(guān)屬性即可。

    搭建Jenkins環(huán)境

    Jenkins是一個(gè)用JAVA編寫(xiě)的開(kāi)源的持續(xù)集成工具,運(yùn)行在servlet容器中,支持軟件配置管理(SCM)工具,可以執(zhí)行基于APACHE ANT和APACHE MAVEN的項(xiàng)目,以及任意Shell腳本和Windows批處理命令

    Jenkins提供了自動(dòng)構(gòu)建和部署的功能,具體安裝方式如下:

    wget -O /etc/yum.repos.d/jenkins.repo \
        https://pkg.jenkins.io/redhat-stable/jenkins.repo
    rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
    yum upgrade
    yum install epel-release java-11-openjdk-devel
    yum install jenkins
    systemctl daemon-reload

    通過(guò)下面的命令啟動(dòng)或停止jenkins

    systemctl start jenkins
    systemctl stop jenkins

    訪問(wèn): http://192.168.8.136:8080 訪問(wèn)jenkins

    按照控制臺(tái)提示的步驟一步步執(zhí)行即可。

    基于Jenkins+Maven+Gitea+Nexus怎么搭建CICD環(huán)境

    注意: Jenkins安裝默認(rèn)采用JENKINS用戶,所以如果是使用root權(quán)限,則需要修改帳號(hào)

    [root@localhost bin]# vim /etc/sysconfig/jenkins
    
    JENKINS_USER="root"

    項(xiàng)目改造

    項(xiàng)目配置本地的私服

    修改setting.xml文件,增加mirror配置

    <mirrors>
        <mirror>
            <id>nexus</id>
            <mirrorOf>maven-public</mirrorOf>
            <url>http://192.168.8.136:8081/repository/maven-public/</url>
        </mirror>
    </mirrors>

    mirror相當(dāng)于一個(gè)攔截器,它會(huì)攔截maven對(duì)remote repository的相關(guān)請(qǐng)求,走該鏡像進(jìn)行jar包的獲取。

    在項(xiàng)目中增加如下配置,也就是指定snapshots和releases 不同發(fā)行版本jar包的發(fā)布倉(cāng)庫(kù)

    <distributionManagement>
        <snapshotRepository>
            <id>snapshots</id>
            <name>Nexus Snapshot Repository</name>
            <url>http://192.168.8.136:8081/repository/maven-snapshots/</url>
        </snapshotRepository>
        <repository>
            <id>releases</id>
            <name>Nexus Release Repository</name>
            <url>http://192.168.8.136:8081/repository/huhy-nexus/</url>
        </repository>
    </distributionManagement>

    修改發(fā)布服務(wù)器的settings.xml文件

    修改發(fā)布服務(wù)器的settings.xml文件的目的,是因?yàn)镴enkins服務(wù)器在進(jìn)行持續(xù)集成時(shí),需要通過(guò)maven實(shí)現(xiàn)依賴jar包的下載,而這個(gè)下載需要從我們本地的私服中獲取。

    <mirrors>
        <mirror>
            <id>nexus</id>
            <mirrorOf>maven-public</mirrorOf>
            <url>http://192.168.8.136:8081/repository/maven-public/</url>
        </mirror>
    </mirrors>
    <profiles>
         <profile>
          <id>nexusRep</id>
          <repositories>
            <repository>
              <id>nexus</id>
              <url>http://192.168.8.136:8181/repository/maven-public/</url>
              <layout>default</layout>
              <releases>
                  <enabled>true</enabled>
                  <updatePolicy>always</updatePolicy>
              </releases>
            </repository>
          </repositories>
          <pluginRepositories>  
            <pluginRepository>  
              <!--插件地址--> 
                <id>nexus</id>  
                <url>http://192.168.8.136:8181/repository/maven-public/</url>  
                <snapshots>     
                  <enabled>true</enabled>    
                </snapshots>    
                <releases>      
                    <enabled>true</enabled>    
                </releases> 
            </pluginRepository>
           </pluginRepositories>
        </profile>
      </profiles>
    
      <activeProfiles>
        <activeProfile>nexusRep</activeProfile>
      </activeProfiles>

    配置自動(dòng)集成與發(fā)布

    配置Jenkins的環(huán)境變量

    進(jìn)入到如下頁(yè)面,紅色標(biāo)注的配置。

    基于Jenkins+Maven+Gitea+Nexus怎么搭建CICD環(huán)境

    配置Maven的環(huán)境,指定發(fā)布服務(wù)器上安裝的Maven目錄。

    基于Jenkins+Maven+Gitea+Nexus怎么搭建CICD環(huán)境

    安裝Jenkins插件

    Gitea , 集成Gitea,安裝好之后,在Jenkins全局配置中,添加Gitea Server信息。

    基于Jenkins+Maven+Gitea+Nexus怎么搭建CICD環(huán)境

    Git Parameter , 配置Git發(fā)布屬性

    Pubpsh Over SSH ,在遠(yuǎn)程機(jī)器上執(zhí)行腳本,這一步需要先配置能ssh遠(yuǎn)程機(jī)器

    Maven Integration, 支持Maven項(xiàng)目的集成

    配置發(fā)布目標(biāo)服務(wù)器信息

    我們把下面兩臺(tái)服務(wù)器當(dāng)成是web節(jié)點(diǎn)

    192.168.8.134192.168.8.135

    在Jenkins 全局配置中,配置這兩臺(tái)服務(wù)器的信息,用來(lái)后續(xù)實(shí)現(xiàn)jar包遠(yuǎn)程傳輸。其中Remote Directory目標(biāo)服務(wù)器的工作目錄,jar包會(huì)被遠(yuǎn)程傳輸?shù)皆撃夸浵?/p>

    基于Jenkins+Maven+Gitea+Nexus怎么搭建CICD環(huán)境

    添加項(xiàng)目發(fā)布機(jī)制

    創(chuàng)建一個(gè)Maven項(xiàng)目的任務(wù)。

    基于Jenkins+Maven+Gitea+Nexus怎么搭建CICD環(huán)境

    配置源碼來(lái)源,這里使用Gitea中項(xiàng)目的源碼地址,并配置登錄帳號(hào)密碼信息。

    基于Jenkins+Maven+Gitea+Nexus怎么搭建CICD環(huán)境

    配置Maven的執(zhí)行命令,其中root POM,如果是在多模塊項(xiàng)目中,需要指定當(dāng)前要構(gòu)建的模塊的pom.xml。

    基于Jenkins+Maven+Gitea+Nexus怎么搭建CICD環(huán)境

    增加構(gòu)建成功之后的執(zhí)行邏輯,就是把jar包發(fā)布到遠(yuǎn)程目標(biāo)服務(wù)器,然后執(zhí)行相關(guān)shell腳本啟動(dòng)服務(wù)

    基于Jenkins+Maven+Gitea+Nexus怎么搭建CICD環(huán)境

    編寫(xiě)發(fā)布腳本

    編寫(xiě)shell腳本,當(dāng)jar包發(fā)送到目標(biāo)服務(wù)器之后,執(zhí)行下面腳本。

    1. 做歷史jar備份和清理

    2. 執(zhí)行shell腳本啟動(dòng)服務(wù)

    #! bin/sh -e
    export JAVA_HOME=/data/program/jdk1.8.0_241
    export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=${PATH}:$JAVA_HOME/bin
    source /etc/profile 
    # define property
    JAR_PATH='/app/service/goods-service'
    TEMP_PATH='/app/service/temp'
    BACKUP_PATH='/app/service/backup'
    JAR_NAME=goods-service.jar
    FILE_NAME=goods-service
    # stop target service
    cd ${JAR_PATH}
    sh run-goods-service.sh stop
    sleep 2
    rm -rf $FILE_NAME.log
    # backup old jar
    BACKUP_DATE=$(date +%Y%m%d_%H%M)
    if [ ! -d $JAR_PATH/backup/$FILE_NAME ];then
        mkdir -p $JAR_PATH/backup/$FILE_NAME
    fi
    cd ${JAR_PATH}
    pwd
    if [ -f $JAR_NAME ];then
       mv -f ./$JAR_NAME ./backup/$FILE_NAME/$JAR_NAME$BACKUP_DATE
       sleep 1
    fi
    # start jar
    BUILD_ID=dontKillMe
    cd ${TEMP_PATH}
    mv -f $JAR_NAME  $JAR_PATH
    cd ${JAR_PATH}
    sh run-goods-service.sh restart
    # clear old backup
    cd ${JAR_PATH}/backup/$FILE_NAME
    ls -lt|awk 'NR>5{print $NF}' |xargs rm -rf
    ps -ef|grep java
    echo "=============deploy success========"

    編寫(xiě)運(yùn)行腳本run-goods-service.sh

    # 表示當(dāng)前腳本采用/bin路徑的bash程序來(lái)解釋執(zhí)行
    #!/bin/bash
    # 執(zhí)行的jar包
    APP_NAME=goods-service.jar
    usage() {
      echo "執(zhí)行操作命令 [start|stop|restart|status]"
      exit 1
    }
    if_exist() {
      pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'`
      if [ -z "${pid}" ]; then
        return 1
      else
        return 0
      fi
    }
    start() {
      if_exist
      if [ $? -eq 0 ]; then
        echo "${APP_NAME} already running . pid=${pid}"
      else
        nohup java -jar ${APP_NAME} > goods-service.log 2>&1 &
        npid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'`
        echo "start ${APP_NAME} success, pid=${npid}"
      fi
    }
    stop() {
      if_exist
      if [ $? -eq 0 ]; then
        kill -9 $pid
        echo "stop $pid success".
      else
        echo "${APP_NAME} is not running"
      fi
    }
    status() {
      if_exist
      if [ $? -eq 0 ]; then
        echo "${APP_NAME} is running. pid is ${pid}"
      else
        echo "${APP_NAME} is not running "
      fi
    }
    restart() {
      stop
      sleep 5
      start
    }
    case "$1" in
       "start")
          start
           ;;
        "stop")
          stop
           ;;
        "status")
          status
           ;;
        "restart")
          restart
           ;;
        *)
        usage
         ;;
    esac

    配置代碼提交后動(dòng)態(tài)構(gòu)建

    如果我們希望代碼提交合并到某個(gè)分支后,自動(dòng)構(gòu)建進(jìn)行發(fā)布,怎么實(shí)現(xiàn)呢?

    安裝Webhook插件

    在Jenkins中安裝Generic Webhook Trigger 插件,安裝成功后,會(huì)在構(gòu)建的配置頁(yè)面多了下面所示的一個(gè)選項(xiàng)。

    基于Jenkins+Maven+Gitea+Nexus怎么搭建CICD環(huán)境

    配置Generiac Webhook Trigger,增加一個(gè)token作為驗(yàn)證。

    基于Jenkins+Maven+Gitea+Nexus怎么搭建CICD環(huán)境

    注意這個(gè)地址: http://JENKINS_URL/generic-webhook-trigger/invoke , 在webhook中需要配置這個(gè)作為觸發(fā)調(diào)用。

    gitea添加webhook鉤子

    在gitea的項(xiàng)目中,找到Web鉤子,添加Web鉤子. 選擇gitea。

    基于Jenkins+Maven+Gitea+Nexus怎么搭建CICD環(huán)境

    添加webhook

    基于Jenkins+Maven+Gitea+Nexus怎么搭建CICD環(huán)境

    驗(yàn)證自動(dòng)觸發(fā)的行為

    修改gpmall-pc這個(gè)項(xiàng)目的任何一個(gè)代碼,然后提交到gitea上。

    觀察Jenkin的項(xiàng)目構(gòu)建目錄,會(huì)增加一個(gè)自動(dòng)構(gòu)建的任務(wù),如下圖所示。

    基于Jenkins+Maven+Gitea+Nexus怎么搭建CICD環(huán)境

    并且在gitea的webhook中,可以看到最近的推送記錄

    基于Jenkins+Maven+Gitea+Nexus怎么搭建CICD環(huán)境

    讀到這里,這篇“基于Jenkins+Maven+Gitea+Nexus怎么搭建CICD環(huán)境”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

    向AI問(wèn)一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI