当前位置:首页 » 操作系统 » jenkins源码管理

jenkins源码管理

发布时间: 2022-11-28 13:35:54

㈠ Jenkins篇:Jenkins发布成功后自动创建Tag

最近公司推行的程序包版本规范,要求每一次提测部署都需生产Git tag,作为测试版本号,由于需要手工创建Tag,带来了额外的工作量,因此需要找出一种构建后立刻创建tag的方法。

1 准备原材料

可工作的Jenkins环境

可读取的Gitlab项目仓库

2 创建一个新的构建任务,这里我以build_on_tag为例

3 配置源码管理

这里需要说明的是Name这个字段,需要填git仓库名的字段,如:

http://180.2.1.1/java/mixapp.git 中 mixapp就是仓库名字

4 配置构建后操作

操作中选择"Git Publisher",来配置发布后执行的任务。

注意:

配置Git Publisher 时,需要我们勾选"Push Only If Build Succeeds",要不然每次发布无论成功或者失败都去创建tag这样给我们的仓库里面会产生很多垃圾版本。

此外,TAG 通 PUSH 就是tag名称

Target remote name 就是之前源码管理里配置的仓库名称

5 查看构建日志

6 Gitlab 确认分支已创建成功

如果安装了 Build+Timestamp+Plugin 插件,可以在git tag 的message填入。"$BUILD_TIMESTAMP $BUILD_DISPLAY_NAME", 那么tag就会带有Jenkins构建事件

Jenkins使用好了会帮助我们节省时间,之前一直都没怎么研究,从现在开始要好好玩转Jenkins了,下一篇文章讲述Jenkins如何自定义构建展示名称。

㈡ Docker + Jenkins+ Git + Python + allure的曲折历程《一》

1、Ubuntu(虚拟机、云都可以)
2、Docker(Docker安装参考 Ubuntu安装docker - )
3、Jenkins(Jenkins安装参考 Jenkins 安装及部署 - )
4、Python3 (3.8)
5、Java (11)
6、allure (2.14.0)
7、Git
8、chrome (无界面)

本框架适用于,UI 自动化、接口自动化持续集成、持续部署(CI/CD),完成自动化测试任务、线上巡检等工作。并结合allure生成一份可视化、易读性的报告。鉴于网上有大量的类似教程,如有和他人冲突地方,本框架的仅代表个人观点并实际进行操作下撰写。测试用例基于Pytest框架书写(后面专题会讲Pytest框架,本文不涉及该内容)

在jenkins上创建一个自由风格的项目
添加git (需要装jenkins插件git) 会碰到第一个坑,不能连接到仓库

以上完成后返回创建的自由风格项目-源码管理添加凭证

㈢ jenkins部署jeecg-boot3.1(前后端)自动化

我是使用我的腾讯云轻量应用服务器做的本次实战

(操作系统:CentOS 7.6 64bit)

(主机规格:CPU: 4核 内存: 4GB)这个配置起前端有点带不动-_-,建议8G内存,这个问题我反复测试很多次。一跑npm 就开始疯狂占资源,然后操作系统内存不够直接把jenkins的进程都给杀了。所以如果你也是4g或者2g内存,尽量不要有其他多余的应用或者容器在机器上运行。

启动:

a与b的结果都是将jenkins启动,也是我们的目标,本篇文章采用war包方式,也建议war包的方式,docker启的话,里面jdk是11,而我机器的jdk是8,同时项目jdk也是8,换11的话,天知道会出什么问题。 启动之后,访问一下,上述例子中我映射了7999端口,同时我的腾讯云防火墙也开放了7999这个端口,下面是访问图例:

根据提示粘贴密码,如果是war包启动的就直接复制页面提示的路径就可以,输入命令,即得密码

如果是docker启动的,上面的-v挂载了一个路径 /jenkins-data 这里面的文件就是容器里jenkins_home里面的文件,故路径就变成了

随后,输入得到的密码,进入,选择安装推荐的插件

接下来,就等待机器安装,然后创建第一个账户,然后jenkinsURL默认是啥就是啥(反正可以改的),可能会提示重启,如果没有不管。进入jenkins

到这里,先停一下。右上角红色的1不管。

装插件: (系统管理)Manage System -> (插件管理)Manage Plugins -> (可选的插件)Available,在 Filter 中搜索 Gitee,Jersey2 API这两个插件,然后分别选中,然后点install without restart。

等待安装完毕即可。

之后,就是配置gitee了

系统管理—>系统配置---->gitee配置

在 链接名 中输入 Gitee 或者你想要的名字

Gitee 域名 URL 中输入码云完整 URL地址: https://gitee.com (码云私有化客户输入部署的域名)

证书令牌 中如还未配置码云 APIV5 私人令牌,点击 Add - > Jenkins

Domain 选择 全局凭据

Kind 选择 Gitee API 令牌

Scope 选择你需要的范围

Gitee API Token 输入你的码云私人令牌,获取地址: https://gitee.com/profile/personal_access_tokens
这个令牌建议保存在云笔记之类的东西上,方便自己以后用

ID, Descripiton 中输入你想要的 ID 和描述即可。然后点添加,然后回来选择刚刚添加的令牌,点击测试链接,出现成功即可。

我是在宿主机安装的maven,这样后面shell命令里面可以直接用mvn

maven的话最好是使用jeecg官方推荐的

找一下settings文件

就可以看到maven home 然后在maven home的conf目录下就有settings文件了。

然后替换一下 settings.xml文件,或者直接改也行(就下面这部分):

npm是装在宿主机的。因为我是war包直接起的。所以可以直接在后面shell命令里面用npm,如果是docker启动的,容器里面是没有node的,而且容器里面jdk是11,就…不是很方便,所以我前面建议war包直接起。

我的版本:

jeecg-boot/ ant-design-vue-jeecg / Dockerfile:

jeecg-boot/ ant-design-vue-jeecg / .env.proction

新建任务–>构建一个自由风格的软件项目—>源码管理—>点git

输入repository URL: https://gitee.com/xiao_chaowen/jeecg-boot.git( 也就是仓库地址)

配置凭证:

gitee的用户名密码

点高级:

Branch Specifier 选项:

对于单仓库工作流输入: origin/g i t e e S o u r c e B r a n c h

对 于 P R 工 作 流 输 入 : p u l l / {giteeSourceBranch}

对于 PR 工作流输入: pull/giteeSourceBranch

对于PR工作流输入:pull/{giteePullRequestIid}/MERGE

Additional Behaviours 选项:

对于单仓库工作流,如果你希望推送的分支构建前合并默认分支(发布的分支),可以做以下操作:

点击 Add 下拉框

选择 Merge before build

设置 Name of repository 为 origin

设置 Branch to merge to 为 ${ReleaseBranch} 即要合并的默认分支(发布分支)

对于 PR 工作流,码云服务端已经将 PR 的原分支和目标分支作了预合并,您可以直接构建,如果目标分支不是默认分支(发布分支),您也可以进行上诉构建前合并。

接着构建触发器:

点击gitee webhook触发构建

点击生成一下gitee webhook密码 同时记录上面一张图的gitee webhook要填的URL。然后去gitee新增webhook进行填写即可。

然后回来配置构建,点击增加构建步骤—>执行shell:

这堆命令,就是起后台和前台的镜像,可以根据自己情况更改

然后是构建后操作:

完事了保存一下。就可以在gitee webhook那里点击测试,然后回到jenkins查看控制台输出

然后查看服务器,会有四个容器已经启动,如果启动失败的,看一下logs,有可能是配置之类的问题。

现在就可以访问8000

㈣ jenkins源码管理没有add按钮

可以进行重新设置。
在已运行的Jenkins主页中,点击左侧的系统管理Configure Global Security进入。构建触发器:表示在什么情况下构建项目,如果选择“Poll SCM”,然后在日程表里填上cron表达式,例如"H/5 ",表示每5分钟检查一次,有代码变更就构建项目。这里我们不选Poll SCM,而是用Gitub插件来做到实时构建。Github插件:“系统管理” "插件管理" "可选插件",搜索“Github plugin”,勾中,直接安装。进入到插件安装页面,待安装成功后,再次进入项目配置页面。这时“构建触发器”里应该多了一项“Build when a change is pushed to GitHub”,选中。接下来要去Github上配置hook。

㈤ 5. Jenkins使用 -- jobs

文章已经迁移到我的 个人博客 ,里面还有更多内容。

前几次我们一直在说项目(project),现在又出现一个job,他们分别是什么呢?根据 这个讨论 ,这两个基本上是一个东西,名字基本可以互通,以下不再区分。

进入主页,点击 新建

然后出现下图界面, Enter an item name 中输入 DevProject1 ,然后选择 构建一个自由风格的软件项目 ,最后点击 OK 保存。

这样,我们在主页就可以看到这个项目了

鼠标悬浮在项目名称上,出现一个倒三角,点击出现下拉菜单,选择 配置 ,进入项目配置页面。 项目名称 没什么好说的,就是项目名称而已。 描述 和上一部分 基本设置 中的内容一样。 源码管理 可以选择自己使用的管理方法,下一部分我们会讲使用git和github。其他构建方便的东西,实际操作的时候再说,现在自己熟悉下即可。

不过这里简单说下 构建触发器 Build periodically 日程表 这个部分,其实大家自己点开帮助按钮就可以得到足够的信息。

下面相关很多部分很多取自 linux计划任务crontab使用方法 ,并做相应调整和修改。

其他格式解释:

快速帮助文档有几个例子,不明白的话可以看看,很简单。

我们这里先熟悉下Jenkins的导航,首先应该注意,头部有导航标识(这个应该叫啥啊,我不知道,自己取得名字,请大家能够提供学名,谢谢),如下图所示

如果我点击一个项目名称,比如 DevProject1

进入这个项目的页面,如下,注意红框中的变化

鼠标悬浮会有各种下拉菜单,自己可以体验。

进入Jenkins主页,如果有项目的话,会如下图显示

注意红框 S W 对应的标识,鼠标悬浮提示分别为“上次构建状态"和”编译晴雨表“。

S 好理解吧,那 W 是什么呢?我们通过实验来看。

点击进入一个项目,或者通过下拉菜单,点击 立即构建 (第一次),出现下图变化

S 变蓝色,鼠标悬浮提示 success , W 太阳位置,悬浮提示如下图

这次模拟一次构建失败。进入项目配置,找到 构建 ,因为我用的Mac,所以选择”Execute shell“,如果是win用户,请选择第一个选项。

Command 框中,输入不是mac也不是win命令的一串无意义字符,比如“asdf",保存设置,然后点击 立即构建 (第二次),观察项目主页图标变化。

然后我再点击一次 立即构建 (第三次),继续观察项目主页图标变化。

然后删除刚才的那个无意义的命令,再次构建(第四次)。然后再次构建(第五次)。项目主页如下显示, S 为蓝色, W 显示乌云。鼠标悬浮,观察提示。

有没有看出, S 就是简单的本次构建成功与否, W 是近五次构建情况总览,按照成功与失败比例,对应晴天到雷雨。

进入我们的项目主页,左下侧还能看到构建历史(这里我有多做了几次错误构建,不要在意这些多出来的构建)

点击某个记录,今日此构建的主页

左侧各种查看和设置选项,自己可以试试。比如点击 Console Output ,可见:

显示控制台输出,并有我们失败的提示。

进入某个项目的设置,勾选 触发远程构建 ,在 身份验证令牌 中填入一个字符串,比如“111”

根据下方提示,浏览器输入“JENKINS_URL/job/TestProject1/build?token=TOKEN_NAME ”启动构建。

“JENKINS_URL”是构建主机的地址。在这里,我们并没有远程主机连接,不过我们可以用本机实验,那么“JENKINS_URL”就是“http://0.0.0.0:8080/”。

“TOKEN_NAME”就是我们刚才设置的字符串(“111”)。

浏览器地址栏输入:“ http://0.0.0.0:8080/job/TestProject1/build?token=111 ”,会有提示应该使用post,不要用get。不管他,点击 Proceed 继续。回到项目主页,可见已有构建。

因为使用get不安全,所以建议使用post远程构建,具体方法可以参考这里 Jenkins API Integration : Trigger Job Remotely via Jenkins API

为了演示,快速建立三个项目如图:

进入“2”的配置,找到 构建触发器 ,勾选 Build after other projects are built Projects to watch 填入“1”。注意下面三个单选框,这里使用默认设置。

然后在 构建后操作 的操作中,选择 Build other projects

要构建的项目 输入“3”。

保存回到“2”项目主页后,发现如下图变化

查看其他两个项目,同样出现对应的上下级项目。

㈥ iOS-Jenkins-TestFlight自动打包流程

一、准备一台mac电脑
二、安装jenkins
打开终端运行:
brew install Jenkins
如果没有安装brew,请前往 brew 根据提示安装。
至少需要安装java1.8 ,如果没有安装会有提示, java
java安装完毕,链接 launchd 配置文件

启动jenkins
jenkins
打开Safari输入: http://localhost:8080/
就能看到jenkins已经运行起来了,如果你更换了端口就是你后来设置的端口。

接下来打开Jenkins后会让去一个填写password的页面如下图,存储password的地方就是图片上那行红色字体目录下,使用终端 cat + 红色字体路径就看到了

然后将我们得到的password输入到“Administrator password“中,即可进入如下界面,接着安装一些建议的插件(左边的),请等待,并全部安装成功在进行下一步。

安装完成之后,输入账户密码,登陆。开始jenkins

二、cocoapod环境安装
项目中一般会使用cocoapod管理第三方库。这个时候如果使用jenkins自动打包,就需要安装好cocoapod环境

三、jenkins使用
1、安装插件
Keychains and Provisioning Profiles Management
Xcode integration
在系统管理-> 插件管理中搜索插件

配置Keychains and Provisioning Profiles Management

请先配置好p12和Provisioning Profiles文件
需要上传login.keychain文件,该文件获取方法,在终端中输入
cd ~/Library/Keychains
将login.keychain文件upload之后,会出现下图的界面,根据需要将证书添加进去即可,但是由于macOS10.12以及以后的系统里面没有login.keychain文件,只有login.keychain-db,可以复制出来删除-db,upload就好了。(上传keychain,路径用自己改名后的那个)

然后添加Provisioning Profiles,上传方法和上传login.keychain一样,去选择Provisioning Profiles文件,然后upload,然后结果如下图,蓝色框内的是固定格式的/Users/用户名/Library/MobileDevice/Provisioning Profiles

配置好之后保存即可

3.开始配置任务
创建一个任务,自由风格的任务

General
创建一个自由风格的任务,然后在选择丢弃旧的构建,至于天数和保持的最大个数,按照自己的需求来就好

源码管理
接下来是源码管理,在Repository URL里面添加你的git地址,我这里添加的是http的,如果你的项目是使用的ssh的,那么就将git开头的地址填写上,然后点击Add添加你的git帐号,如果你的事ssh的,将ssh的密匙填写上,具体的自己网络一下就好咯,我就不多写了,结果如图

构建触发器
接下来是构建触发器,也就是什么时候触发自动打包我这里填写的是H 20 * * 这个意思就是H小时然后,后面跟着数字,在后面就是日月年, 代表的我认为是每次都触发,也就是每天每月每年,但是Jenkins的时间不是绝对的,一般都是在随机在半点,也就是设置20点,大概会在20:30分左右会触发,如果需要两个时间,那么格式可以这样H 20,22 * * *结果如图

构建环境
在构建环境里面勾选Keychains and Code Signing Identities和Mobile Provisioning Profiles,Keychains and Code Signing Identities是打包需要的证书,Mobile Provisioning Profiles是打包需要的配置文件,都是可以自己选择的,我的如图

构建环境第一次Code Signing Identity和PP文件可能有些不一样。应用,保存一下就可以了。

添加脚本

执行cocoapod脚本必须要在第一个

执行打包并且上传到TestFlight脚本

关于exportOptionsPlist
请参考 exportOptionsPlist
把exportOptionsPlist添加到infoPlist同一层并push到git

关于

问题的解决。
证书不能使用自动管理,需要手动。

感谢

㈦ Jenkins源码管理,关于Local mole directory

近期在配置Jenkins+maven+svn自动打包任务时,遇到一个项目,打包时需要依赖文件夹的目录结构,如果直接从svn检出打包,打出来的包会缺失文件。这时才注意到了关于Local mole directory的设置。

Local mole directory默认情况下是一个点,表示就在工作目录下面直接检出;

首先再jenkins上创建一个secdev的任务,项目直接检出到工作目录下

该secdev任务构建完成后,在jenkins的workspace下就会生成一个secdev的目录。

接着配置我们真正需要打包的项目jdgl,将项目检出到secdev目录下,这样就解决了jdgl项目打包需要依赖secdev的情况了。

㈧ 接口自动化测试环境搭建jmeter+ant+git+jenkins

1、安装java

方式一:安装java环境:yum install java-1.8.0-openjdk* -y

使用命令检查是否安装成功 java -version

到此安装结束了。这样安装有一个好处就是不需要对path进行设置,自动就设置好了。jdk安装在/usr/lib/jvm目录下

方式二:先下载对应版本到本地,然后解压缩配置环境变量(详细步骤网络即可)

2、安装jmeter

(1)登录自己服务器,在usr/local下创建文件夹jmeter,命令mkdir jmeter

(2)通过官网下载jmeter到本地

(3)通过xhell上传到对应的目录(cd到要上传的目录)

(4)yum -y install lrzsz(安装了lrzsz,执行该命令是因为服务器有的文件不让上传。让上传就不用执行)

(5)使用 rz -y命令进行文件上传,此时会弹出上传的窗口,进行上传即可

(6)上传成功之后进行解压 unzip apache-jmeter-5.4.zip

(7)配置环境变量vi /etc/profile

esc+shift # 键盘同时按住,退出编辑模式

:wq # 保存退出

:q # 不保存退出

添加如下内容:

# set Jmeter enviroment

export JMETER_HOME=/usr/local/jmeter/apache-jmeter-5.4

export PATH=${PATH}:${JMETER_HOME}/bin

(8)source /etc/profile # 使配置文件生效

(9)jmeter -version

3、安装ant

(1)在usr/local下创建文件夹ant,命令mkdir ant

(2)通过官网下载ant到本地

(3)使用 rz -y命令进行文件上传,此时会弹出上传的窗口,进行上传即可 sz 文件名(服务器文件下载到本地)

(4)上传成功之后进行解压 unzip

(5)配置环境变量vi /etc/profile

# set Ant enviroment

export ANT_HOME=/usr/local/ant/apache-ant-1.10.10

export PATH=${PATH}:${ANT_HOME}/bin

(6)source /etc/profile # 使配置文件生效

(7)ant -version

4、ant的配置

(1)将jmeter安装包extras文件夹里ant-jemter-1.1.1.jar 复制到antlib下

cp ant-jmeter-1.1.1.jar /usr/local/ant/apache-ant-1.10.10/lib

(2)进入apache-jmeter-3.0extras运行ant ,查看该目录下是否出现Test.jtl、Test.html文件,若有,则构建成功

5、编写Ant的build.xml文件

(1)创建Jmeter_Test目录,放在/usr/local/下

(2)Jmeter_Test目录下创建build.xml、ResultLog(html,jtl)、Script(放脚本)

(3)build.xml文件内容去https://www.cnblogs.com/L-Test/p/9736808.html下复制,需要修改里边的路径

6、jenkins安装

(1)Jenkins下载地址:https://jenkins.io/download/

(2)下载的是jenkins.war

(3)在Linux下启动Jenkins有两种方式,一种是在jenkins.war的存放目录下使用命令java -jar jenkins.war启动,

另外一种是把jenkins.war放在tomcat的webapps目录下,然后启动tomcat就可以了(本次用的第一种)

(4)在浏览器中输入http://服务器ip:8080/jenkins/

如果是用的阿里云服务器,启动成功之后,在浏览器访问,无法访问。解决办法就是登陆阿里云服务器修改一下安全规则,把端口范围调大

(5)访问成功之后输入管理员密码

(6)安装推荐的插件,创建管理员用户

7、jenkins的其他配置

(1)修改为中文依赖的三个插件localization-zh-cn、locale、localization-support

jenkins插件下载地址https://blog.csdn.net/qq_39530199/article/details/90266654

(2)不知道依赖于那个插件,可以看看manage Jenkins里边的报错 plugin is missing

8、git的安装

(1)git下载地址:https://mirrors.edge.kernel.org/pub/software/scm/git/

(2)usr/local下新建git目录,cd到git,安装包上传上来, tar -zxvf v2.17.0.tar.gz

(3)安装编译源码所需依赖,命令为: yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl- ExtUtils-MakeMaker 耐心等待安装,出现提示输入y即可;

(4)安装依赖时,yum自动安装了Git,需要卸载旧版本Git,命令为: yum remove git 出现提示输入y即可;

(5)进入解压后的文件夹,命令 cd git-2.17.0 ,然后执行编译,命令为 make prefix=/usr/local/git all 耐心等待编译即可;

(6)安装Git至/usr/local/git路径,命令为 make prefix=/usr/local/git install ;

(7)打开环境变量配置文件,命令 vim /etc/profile ,在底部加上Git相关配置信息

# set Git enviroment

export GIT_HOME=/usr/local/git

export PATH=$GIT_HOME/bin:$PATH

(8)git version

9、jenkins安装相应插件

(1)安装源码管理选择git需要的插件git、git-server、git-client、github-api、plain-credentials、github

上传插件的时候可能会报错,可以把插件上传顺序改一下在上传

(2) jenkins设置git的安装路径,点击全局工具配置/usr/local/git/bin/git(whereis git 命令可查看)

(3)windows本地安装git,把代码推送到github(需要在github创建一个仓库),参考自动化测试的 《

(4)jenkins配置源码管理选择git,地址输入github项目地址,账号可以先在jenkins凭据配置中添加github账号

输地址或账号的时候可能会报403的错误。解决办法刷新一下或者 在Configure Global Security中开启 启用代理兼容

(5)配置完源码管理,直接进行构建,代码自动下载到/root/.jenkins/workspace/git/路径下

10、接下来需要把build.xml中脚本路径改为/root/.jenkins/workspace/git/进行构建,可以在Github里提交一个jmx文件构建一下试试

㈨ CI/CD的实践

阿里云的 Docker 镜像源添加

docker服务基本的操作

得到密钥后填入,继续

然后再点击去安装推荐插件

docker 的架构是 C/S 架构。在我们使用 docker 命令时,其实是命令使用 socket 与 docker 的守护进程进行通信,我们需要将jenkins添加到docker的用户组,才能正常执行 docker 命令

NODE

服务器上生成

把公钥添加在到git, 私钥添加到jenkins源码管理

本地文件添加DockerFile和nginx配置

构建脚本

然后构建生成一个新的镜像

镜像库就是集中存放镜像的一个文件服务。镜像库在 CI/CD 中,又称 制品库 。构建后的产物称为制品,制品则要放到制品库做中转和版本管理。常用平台有Nexus,Jfrog,Harbor或其他对象存储平台

㈩ jenkins部署源代码到远程服务器

jenkins要想在远程服务器执行命令,发送文件等操作,必然要处理jenkins与远程机的免交互问题。
下面如何让jenkins与目标主机实现免交互。

系统管理-- 插件安装--搜索ssh --安装 Publish Over SSH

安装完成后,在jenkins端生成秘钥对(公钥id_rsa.pub 私钥id_rsa)

输入一次密码,以后就免密了。输入完可以用ssh 登陆试一下。

我们以最简单的一个例子来演示,部署一个Html页面到远程服务器的nginx网站目录下,实现页面上线。
首先,刚才jenkins配置ssh插件,注意填写远程服务器信息的那里的remote directory这个地方指的发送到远程服务器的哪个目录下。

在job配置中

上图的配置就是,将jenkins上的项目文件init.html发送到远端主机192.168.1.112的/var/www/html下
保存,退出。

远端主机的nginx配置:

点击构建。

结果:部署成功

例子比较简单,后期会更新java的部署过程。

热点内容
c语言16进制表示方法 发布:2025-05-17 13:11:25 浏览:479
ftp单位 发布:2025-05-17 13:10:03 浏览:141
c语言编写n的阶乘 发布:2025-05-17 13:10:02 浏览:683
lockjava 发布:2025-05-17 13:02:08 浏览:310
只狼和看门狗哪个配置高 发布:2025-05-17 12:50:21 浏览:205
扁桃玩的服务器地址 发布:2025-05-17 12:18:25 浏览:511
u盘上传歌 发布:2025-05-17 12:14:51 浏览:615
入门c语言设计 发布:2025-05-17 12:08:31 浏览:41
c3算法 发布:2025-05-17 12:04:19 浏览:365
phprecv 发布:2025-05-17 11:55:00 浏览:616