1.Jenkins
Jenkins 是一个开源的、用于构建和自动化软件开发流程的持续集成和交付工具。它提供了一个可扩展的平台,用于构建、测试和部署软件项目。通过使用 Jenkins,开发团队可以实现持续集成和交付,自动化构建和测试过程,提高软件开发的效率和质量。从而应用于各种软件开发项目和持续集成流水线中
Jenkins的主要功能
1. 自动化构建:Jenkins 可以从源代码版本控制系统(如Git、SVN等)中获取代码,并自 动触发构建过程。它支持多种构建工具和构建类型,如Maven、Gradle、Ant等。
2. 持续集成:Jenkins 可以将开发人员的代码变更合并到主干代码,并进行自动构建和 测试,以确保代码的持续集成和验证。
3. 测试和报告:Jenkins 可以集成各种测试工具,如Allure、Selenium、Cucumber等, 执行自动化测试,并生成测试报告和代码覆盖率报告。
4. 部署和交付:Jenkins 可以与不同的部署工具和平台集成,自动化应用程序的部署和交 付过程,以实现持续交付和部署。
5. 插件生态系统:Jenkins 提供了丰富的插件生态系统,允许用户根据需要选择和集成各 种插件,以扩展和定制其功
Jenkins部署及启动
1. 安装JDK的环境,在CMD当中输入: java -version 显示对应的版本号即可
【 最新版本要用JDK11 】;
2. 找到 Jenkins.war 的路径 , 并在改路径下进入cmd 或者 终端;
3. 输入: java -jar <jenkins.war的路径> ,直至完成
然后在网址上输入127.0.0.1:8080
第一次构建的Jenkins我们看到的界面如下显示;其中在cmd或者终端搜索initialAdminPassword 则能找到你的admin的初始密码
输入该密码,点击 【继续】进入Jenkins项目;第一次进入可能会加载比较缓慢,等待片刻;即会显示下图界面,选择【安装推荐的插件】即可;等待它全部安装完成
然后输入一系列账号设置之后就可以进入主页
Jenkins拉取Git代码
方法一:直接填写命令拉取
这个方式不推荐,因为会有对应的层级关系,\workspace \仓库名\文件内容 ;而我们需要的是对应的\workspace下直接是我们的文件内容。换个概念就是把Jenkines看做是我们项目名。 所以这里推荐使用:方法二:使用源码管理拉取代码
方法二:使用源码管理拉取代码
保存项目点击【立即构建】并到工作空间运行后查看效果
区别:两者区别
一个是把对应的目录拉取一同放在工作空间中,一个把文件直接放在工作空间中,一般使用后面这种
Jenkins常用场景-构建触发器
当我们拉取好了之后怎么进行定时的进行跑对应的脚本呢或者每隔多久进行跑脚本呢?那么在【构建触发器】当中有一个定时构建(Build periodically)
此字段遵循Cron表达式的语法(略有不同)。具体地说,每行由5个字段组成,这些字段由TAB或空格分隔,用于指定任务何时执行
MINUTE HOUR DOM MONTH DOW
他们分别表示
MINUTE (分钟): 指定小时内的分钟数。取值范围为 0-59。
HOUR (小时): 指定一天内的小时数。取值范围为 0-23。
DOM (月份的第几天): 指定一个月内的日期。取值范围为 1-31。MONTH (月份): 指定一年内的月份。取值范围为 1-12。
DOW (星期几): 指定星期几。取值范围为 0-7,其中 0 和 7 都表示星期天
这些字段组合在一起,可以创建一个 cron 表达式,用于定时执行任务。例如,如果你的 cron 表达式是 "0 2 * * *" ,则表示任务在每天的凌晨 2点执行
以下是Cron表达式的一些常见用法示例
每15分钟构建一次: H/15 * * * * 或 */15 * * * *
每天8点构建一次: H 8 * * * 或 0 8 * * *
每天8点~17点,两小时构建一次: H 8-17/2 * * *
周一到周五,8点~17点,两小时构建一次: H 8-17/2 * * 1-5
每月1号、15号各构建一次,除12月: H H 1,15 1-11 *
Jenkins项目关联触发
比如一个项目构建完成之后,自动构建下一个脚本(项目)。那么在【构建触发器】当中有一个其它工程构建后构建(Build after other projects are built)
操作步骤
第一步:创建一个新项目可以直接复制之前的项目。【假设这个是开发的项目】
第二步:设置当前这个项目在API_Test(之前的项目)构建成功了,自动执行
第三步:执行开发项目(ShopProject),自动执行测试项目(Api_test)
2.触发远程构建及Gogs的应用
触发远程构建简单理解:当你的代码有更新的时候,希望Jenkins能够自动执行。但是因为对于Jenkins的触发远程构建触发,需要使用Webhook(钩子函数)要在同一个网络中。而像Gitee、GitLab、GitHub都是属于公共仓库,因此我们一般对应的源代码都在本地的仓库当中(包括很多同学都是内网的情况),所以常使用Gogs作为一个轻量级的自托管Git服务。
安装步骤
1.根据你的系统选择安装包并且解压,放在非中文目录下;
2. 进入到目录,输入: gogs web 即能启动服务;
3. 待启动完毕之后,直接访问: http://127.0.0.1:3000/ 即可打开
操作步骤如下
1.新建一个文件夹,输入初始化的命令
git init
2.把相关的文件中的文件复制到当前目录下
3.第一次提交会提示输入Gogs的账号密码,输入之后,刷新页面即可
Gogs结合Jenkins进行构建
1.设置【源码管理】,并且设置URL及对应的gogs的账号密码
Gogs结合Jenkins触发远程构建
1.第一步:进入到Gogs的:gogs\custom\conf\app.ini文件底部添加数据并且重启Gogs
# 127.0.0.1 为Jenkins的IP地址
LOCAL_NETWORK_ALLOWLIST = 127.0.0.1
2.搜索 : Jenkins—>系统管理—>插件管理—>可选插件 搜索 Generic Webhook Trigger 选择进行下载即可(注意:下载之后记得重启Jenkins)
第三步:在Jenkins中 构建触发器 -勾选 Generic Webhook Trigger 并且随意填写 token值
第四步:在gogs当中添加Webhook:
http://127.0.0.1:8080/generic-webhook-trigger/invoke?token=值
当你的Gogs的代码更新,你可以在Jenkins看到项目被调用了
流程图