windows下使用Jenkins+Gitea持續集成


關於Jenkins持續集成:

一、Gitea

1)https://git-scm.com/download/win下載Git並安裝 https://gitea.io/zh-cn/ 下載Gitea私人倉庫

2)Gitea放在想要安裝的路徑下,如圖:

3)雙擊Gitea生成custom文件夾 //方便后面創建服務時配置config文件

4)使用sc create gitea start= auto binPath= ""E:\Gitea\gitea-master-windows-4.0-386.exe" web --config "E:\Gitea\custom\conf\app.ini"" //使用sc命令創建gitea服務 並配置config文件 記得把命令路徑部分改為實際路徑

 

5)通過“localhost:3000”訪問Gitea(Gitea\custom\conf路徑下的app.ini可修改訪問端口號)

6)安裝gitea如圖 支持一下四種數據庫,我們這里使用的是Mysql:

    mysql安裝:mysql官網下載.msi安裝文件 一直下一步安裝(記下安裝路徑)在cd或直接在安裝路徑下打開命令行

    使用:mysqld --initialize --console初始化數據庫,執行完成后,會輸出 root 用戶的初始默認密碼 復制輸出密碼 

    使用:mysqld install 安裝數據庫 后 使用:net start mysql啟動數據庫服務

    使用:mysql -h 主機名 -u 用戶名 -p登陸數據庫 用戶名輸入root 密碼輸入之前復制的默認密碼

    最后使用:CREATE DATABASE gitea; 創建gitea的庫

7)在一般設置中,設置站點名稱/倉庫根目錄(最好自己建在工作目錄里以防找不到)/SSH域名等。

8)最后可在 可選設置-管理員賬號設置界面里創建管理員賬號,用管理員賬號登陸gitea。

9)在gitea中創建倉庫:在gitea中點擊右上角加號 點擊創建倉庫 (這里如果報500錯誤是因為數據庫路徑沒有配對),輸入倉庫和其他信息創建倉庫(注意要勾選這個選項)

 

10)若使用ssh上傳代碼則需要在倉庫中配置部署密鑰:打開想要設置的倉庫-倉庫設置-添加部署密鑰:

    1.密鑰的名字:隨便輸入 可不輸入 會自動生成

    2.密鑰的內容:找到ssh路徑 默認在 C:\Users\<用戶名>\.ssh 右鍵(看看有沒有id_rsa.pub文件 沒有進入下一步,如有進入第4步)使用git bash here(注意這里需要先安裝git 在官網下載 安裝即可)

    3.使用 ssh-keygen -t rsa -C "<your email address>" 生成公鑰和私鑰 一直回車即可

    4.此處生成的 id_rsa.pub即是公鑰 全部復制 粘貼即可

    5.若出現如下提示,則需要配置ssh環境變量 C:\Program Files\Git\usr\bin(我這里是git安裝的默認路徑 改為你git安裝的路徑然后加\usr\bin):

    

 

二、安裝jenkins

1)Jenkins的安裝:https://jenkins.io/zh/download/下載jenkins直接安裝即可,默認安裝路徑為 C:\Program Files (x86)\Jenkins,默認端口為8080 若修改端口號則打開Jenkins.xml在<arguments>標簽中修改

2)登錄localhost:8080 安裝jenkins (需要java,正常安裝即可,安裝完成就行)

3)Jenkins的全局配置 點擊Manage Jenkins-Global Tool Configuration進入全局配置:

    1.在這里我們需要配置需要用的的環境 主要是運行主環境:JDK、打包程序:Maven、上傳於下載代碼:Git

    2.JDK配置:Name就是給JDK起個名字,JAVA_HOME就是JDK的路徑了(注意這里不要配置成jre,是java.exe的路徑 最好與電腦中配置的java環境變量相同)若出現新增安裝點擊刪除安裝即可

             

 

    3.Maven配置:需先下載Maven過程略,配置內容與java相同 不過需在Maven配置項中指向Maven的setting.xml

    

    

    4.Git配置:指向Git.exe的路徑與Java/Maven配置基本相同

4)Jenkins創建工程:創建工程需與倉庫(gitea)工程名稱保持一致(不然后面會遇坑),創建Freestyle project的工程 其他工程均有格式限制 用起來很不方便

5)Jenkins描述:描述可輸入對該項目的介紹等信息 此項為可選項

6)Jenkins源碼管理:源碼管理的主要作用是從倉庫中拷貝代碼到jenkins,源碼管理選項若使用的是svn則勾選svbversion選項,我這里使用的是Git(Git類倉庫均選Git,如Gitea/gitlab/github) RepositoriesURL填寫項目克隆路徑

      這里需要使用http不能使用ssh。Credentials選項填寫git倉庫的身份憑證 最好是root用戶 其他選項不變。

7)Jenkins構建觸發器:構建觸發器其實就是鈎子,作用就是配置一個驗證,使其作為Jenkins的一個通道,在其他倉庫中可通過此通道上傳代碼到Jenkins,這里我們選擇第一個,這里身份驗證令牌個隨便輸入,輸入后則得到遠程令牌為:Jenkins的地址/job/項目名稱/build?token=上面輸入的東西,如圖所示,(我這里就是:http://localhost:8080/job/dasd/build?token=ZZMTOKEN),每次訪問這個路徑都會觸發一次構建,若直接復制到瀏覽器地址欄也會觸發一次空構建,后面我們配置到Gitea后每次上傳代碼都可同步到Jenkins並觸發一次構建:

8)Jenkins構建:構建主要是進行打包和清理打包文件:選擇Invoke top-level Maven targets來使用Maven進行Clean和Package

    1.選擇Maven版本,直接使用全局配置中已經配置的Maven,目標直接輸入要使用的命令,mvn clean則數據clean即可,可創建多個步驟,可以先clean再package。

      (忽略測試腳本打包:package -Dmaven.test.skip=true)

9)Jenkins構建后操作:構建后操作主要是進行部署:這里分為兩種項目說第一種:搭建網頁項目發布到tomcat,第二種搭建springboot項目或可執行項目

    1.搭建web項目(非常簡單):使用Deploy war/ear to acontainer插件

      

 

                 

 

    2.搭建stringboot項目,可使用Post build task插件,這個插件的作用是可調出windows的命令行 可以執行dos命令

     

     例如:啟動java的jar則可使用java -jar 加項目路徑即可啟動項目 這里網上好多人因為Jenkins會自動結束啟動的進程而發愁,有很多解決方案是使用 set BUILD_ID=dontKillMe 命令來臨時修改進程id,

       這里方法我不是太贊成因為你就算使用如下代碼成功啟動項目,不被Jenkins殺掉進程 但是問題依然存在:下一次構建項目如何來結束這個進程呢?如果不結束這個進行那么mvn clean命令必然會失敗。

set BUILD_ID=dontKillMe
start java -jar "C:\Program Files (x86)\Jenkins\workspace\testjar\ace-center\target\ace-center.jar" --server.port=9000

     不過這個問題確實也有解決方案 仔細想了一下 確實可以在啟動時給jar一個端口 然后每次構建前先查找端口對應的PID然后結束此PID 在進行mvn clean即可 但是過程實在繁瑣 我在這里也貼出來

set BUILD_ID=dontKillMe
start java -jar "C:\Program Files (x86)\Jenkins\workspace\testjar\center\target\bookcenter.jar" --server.port=9000


增加到構建前
@echo off
for /f "tokens=5" %%i in ('netstat -aon ^| findstr ":9000"') do (
    set n=%%i
)
taskkill /f /pid %n%

 

這里我有一個更好的辦法:可先把java復制一份到另外的路徑 然后java.exe進行重命名 改為cava.exe 然后在電腦中配置cava.exe的環境變量,然后每次啟動使用,start cava -jar 加項目路徑即可(start會打開一個新的命令行窗口 不會被jenkins殺掉 並且使用start命令可打開多個jar 比如我們的項目就需要啟動7個jar)。如圖jenkins 使用的java而自己的項目使用的是cava,這樣我們現在只用結束所有進程名為cava的進程即可結束。

首先貼下啟動jar程序的代碼:

start  cava -jar "C:\Program Files (x86)\Jenkins\workspace\Server\auth\auth-server\target\auth.jar" 

接着 我們在構建前 只需要按照名稱殺進程即可:

taskkill /im cava.exe /f /t
exit 0

注:若要查看生成的日志 使用start /b 命令 再重定向到某個目錄下即可保存和查看日志

10)再gitea中配置HOOK(鈎子)

    1.打開gitea中項目的倉庫,點擊添加web鈎子,選擇gitea。

                 

    2.在目標url位置粘貼剛才觸發構建器保存的網址即可,步驟7.(我這里是http://localhost:8080/job/dasd/build?token=ZZMTOKEN)

    3.添加后可使用測試推送來驗證連接的正確性:  

 

三、使用Jenkins

整個配置完成了 現在我們只要上傳代碼到git就可以直接完成整個流程

1)使用git上傳代碼:如圖位置復制倉庫地址 使用http或ssh都可以 記得把localhost改為ip

2)git命令記錄:

1. git init //初始化倉庫

2. git add .(文件name) //添加文件到本地倉庫

3. git commit -m "first commit" //添加文件描述信息

4. git remote add origin + 遠程倉庫地址 //鏈接遠程倉庫,創建主分支

5. git pull origin master // 把本地倉庫的變化連接到遠程倉庫主分支

6. git push -u origin master //把本地倉庫的文件推送到遠程倉庫 

注:git push -u origin master –f  //強制push

3)上傳代碼到gitea后就會gitea就會推送到jenkins 何時推送取決於剛才配置鈎子時觸發條件的設置

4)Jenkins可在這里查看構建日志:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM