windows下使用Jenkins+Gitea持续集成

关于Jenkins持续集成:

一、Gitea

1)路径: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可在这里查看构建日志:

原文地址:https://www.cnblogs.com/zhangzimo/p/11101509.html

时间: 2024-10-27 20:02:16

windows下使用Jenkins+Gitea持续集成的相关文章

centos7下Gitlab+Jenkins部署持续集成CI环境

1.基本环境 主机:win10,IP:192.168.0.111:部署机器centos7,IP:192.168.0.65:内存推荐到8G,实测6G以上,以免出现内存不够用而报错. 2.安装gitlab需要的组件 [[email protected] ~]# yum -y install curl policycoreutils-python openssh-server openssh-clients postfix wget vim lrzsz启动邮件功能 [[email protected]

全陷阱破解:在Linux环境下的Jenkins中持续集成Android工程

本方案以 RHEL / Centos 64位Linux操作系统为例,因为这是目前最常见的服务器环境. 一.安装Java SDK. 建议,不要使用诸如yum之类的玩意自动安装,因为openJDK之类的东东最终各种幺蛾子跑不起来.老老实的去oracle网站下载至少Java7 64位的最终版本,手动安装之,配置好系统path和JAVA_HOME环境变量. vim ~/.bash_profile export JAVA_HOME=<Java安装路径> PATH=$PATH:$JAVA_HOME/bin

全陷阱破解:在Linux环境下的Jenkins中持续集成Androidproject

本方案以 RHEL / Centos 64位Linux操作系统为例,由于这是眼下最常见的server环境. 一.安装Java SDK. 建议,不要使用诸如yum之类的玩意自己主动安装,由于openJDK之类的东东终于各种幺蛾子跑不起来.老老实的去oracle站点下载至少Java7 64位的终于版本号.手动安装之,配置好系统path和JAVA_HOME环境变量. vim ~/.bash_profile export JAVA_HOME=<Java安装路径> PATH=$PATH:$JAVA_HO

ARTS-S gitlab与jenkins实现持续集成

jenkins配制 系统管理->管理插件->可选插件->选择安装 Gitlab Hook Plugin和Build Authorization Token Root Plugin插件. jenkins主界面->新建任务->输入一个任务名称(如myproject)->构建一个自由风格的软件项目. 进入myproject,点"配制". 在"源代码管理"选项中填上项目源代码在gitlab上的地址.如http://www.abc.com/

用MSBuild和Jenkins搭建持续集成环境(2)

http://www.infoq.com/cn/articles/MSBuild-2 作者 Mustafa Saeed Haji Ali ,译者 李剑 发布于 2012年10月23日 | 注意: 挥一挥衣袖,带走满满干货,关注活动大本营,时不时发福利呦!3 讨论 分享到:微博微信FacebookTwitter有道云笔记邮件分享 稍后阅读 我的阅读清单 这是持续集成系列的下半部分,如果你还没看过上半部分的话,请点击这里:用MSBuild和Jenkins搭建持续集成环境(1). 与Jenkins相会

RF+Jenkins构建持续集成

引入RF是为了能够快速的开展自动化验收测试,Jenkins而一种持续集成工具,用于监控持续重复的工作,持续的软件版本发布/测试项目,而通过RF+Jenkins可以有利的对RF构建的接口项目进行持续集成测试.Jenkins另一个强大之处就是它的分布式构建(在Jenkins的配置中叫做节点),分布式构建能够让同一套代码在不同的环境(如:Windows和Linux系统)中编译.测试等.而且Jenkins构建的代码和产物最后自动拷贝到主节点. 简单概括而言,结合RF+Jenkins开展持续集成基本步骤:

jenkins+github持续集成中的坑

1.前言 刚开始开发自己的独立博客的时候,每次发布都要手动打包,上传服务器,杀tomcat进程,重启,来回这么重复性工作,很快就有点不耐烦了.如果能自动化的东西,就绝不要手动了,所以自己搭建了个持续集成环境,配好了结合github进行push时自动构建,自动发布的流程,提交代码,泡杯咖啡就发布好了.本以为很简单,但没想到中间细节还是有不少坑,查了很多资料,墙都翻了好几次,把遇到的问题记录在这里. 2.正文 详细安装教程就不复制粘贴了,推荐此文手把手教你搭建Jenkins+Github持续集成环境

【iOS】Jenkins Gitlab持续集成打包平台搭建

Jenkins Gitlab持续集成打包平台搭建 SkySeraph July. 18th 2016 Email:[email protected] 更多精彩请直接访问SkySeraph个人站点:www.skyseraph.com 1. 相关概念 Jenkins Jenkins,一个用Java编写的开源的持续集成工具,提供了软件开发的持续集成服务,可监控并触发持续重复的工作,具有开源,支持多平台和插件扩展,安装简单,界面化管理等特点.更多介绍参考维基介绍. Gitlab GitLab是一个利用R

jenkins + Tomcat 持续集成环境搭建

今天在跑selenium用例时需要用到导入数据库来恢复数据,以便每次测试都保持环境是有效数据,于是想到了jenkins,这里简单介绍一下tomcat + jenkins的环境搭建: 步骤一.下载符合版本的jdk7,触压到某个目录,设置好JAVA_HOME并加入path. 步骤二.下载tomcat,这里使用的是apache-tomcat-7.0.42步骤三.下载Jenkins,把Jenkins.war放入tomcat的webapps目录下,启动tomcat,通过http://localhost:8