IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Jenkins 构建项目流程 -> 正文阅读

[系统运维]Jenkins 构建项目流程

本文整理了?jenkins新建任务是几个环节的配置,不是很全,只是作为笔记参考,?如果你也整理了类似的 可以发出来 我们一起参考学习?

参考的网址:

https://blog.51cto.com/u_13767724/2398549

https://zhuanlan.zhihu.com/p/157592663

https://www.tqwba.com/x_d/jishu/247564.html

??任务类型?

🥽 自由风格的软件项目

这里的所有配置都由自己定义,默认也不会添加特定环境的选项。

🥽 maven项目

jenkins利用你的pom文件进行初始化配置,可以减少手动的配置工作。

🥽 External Job

Jenkins可用于监视进程的非交互式执行,例如cron作业,procmail,inetd启动的进程。通常这些任务是完全不受监控的(这使得您在发生错误时很难注意到),或者无论成功或失败都会不断发送电子邮件(导致相同的情况,因为您无论如何都会快速开始忽略它们。)使用Jenkins可以让您以很少的开销监视大量此类任务。

🥽 构建一个多配置项目

适用于多环境、平台指定构建等。

🥽 最后一个 姑且叫做:copy from

红框标出的是在已有的任务中复制一个任务配置,可以减少重复的配置工作。

??General?

🔒 ?General是构建任务的一些基本配置。名称,描述之类的

🔒 ?项目名称: 是刚才创建构建任务步骤设置的,当然在这里也可以更改。

🔒 ?描述: 对构建任务的描述。

🔒 丢弃旧的构建:服务器资源是有限的,有时候保存了太多的历史构建,会导致Jenkins速度变慢,并且服务器硬盘资源也会被占满。当然下方的"保持构建天数" 和 保持构建的最大个数是可以自定义的,需要根据实际情况确定一个合理的值。

????🔑 保持构建天数:当历史构建超过多少天后会自动删除

??? 🔑?保留构建的最大个数:当构建的个数超过多少个的时候会把之前的后见删除掉

这两种策略是可以同时存在的,构建历史达到上面的任何一个阈值都会执行删除规则

🔒 参数化构建过程:指的是外置传参的一种形式

? ? 🔑 ?名称 选项 描述 ?添加参数 有各种参数 布尔值,字符串等等,这里可以传参 当项目build的时候 就相当于是做了 名称=选项,如果最下面是shell脚本等获取参数的语言就可以从这里拿参数:${参数name} 或者 $参数name。

🔒 关闭构建:这个就相当于禁用这个build,因为一些其他依赖原因不能发布但是你又不能删所以就可以在这里点击关闭构建,但是一般不再这里关闭构件.

??Source Code Management

🔒 Git: 支持主流的github 和gitlab代码仓库。

🔒 Repositories:

????🔑 Repository URL:仓库地址,

????????????gitlab需要密码可以这样填写: http://账号:密码@链接地址

???🔑 Credentials:凭证。可以使用HTTP方式的用户名密码,也可以是RSA文件。但要通过后面的"ADD"按钮添加凭证。

🔒 Branches to build:构建的分支。*/master表示master分支,也可以设置为其他分支。

🔒 源码浏览器:你所使用的代码仓库管理工具,如github, gitlab.

??? 🔑?URL:填入上方的仓库地址即可。

????🔑 Version: 8.7 这个是我们gitlab服务器的版本。(一般不配置)

??Build Triggers

如果要通过访问特殊的预定义URL(方便脚本)来触发新构建,请启用此选项。此功能的一个典型示例是从源控件系统的钩子脚本触发新构建,当某人刚刚将更改提交到存储库时,或者从解析源控件电子邮件通知的脚本中触发。需要以字符串的形式提供授权令牌,以便只有知道它的人才能远程触发此项目的构建。

🔒 Build when a change is pushed to GitLab. GitLab webhook URL:配置GitLab以向Jenkins实例(如GitLab CI)发送POST请求。

🔒 Enabled GitLab triggers(启用GitLab触发器)

???????🔑 Push Events ? :推送事件默认是勾选的

???????🔑 ?Opened Merge Request Events:打开合并请求事件

???????🔑 ?Accepted Merge Request Events:接受合并请求事件

???????🔑 Closed Merge Request Events:关闭合并请求事件

???????🔑 ?Rebuild open Merge Requests:重建打开的合并请求 ( Never,On push to source branch在推送源分支 )

???????🔑 ?On push to source or target branch:在推送到源或目标分支

???????🔑 ?Approved Merge Requests (EE-only) :批准的合并请求(仅限EE)

???????🔑 ?Comments ? ? ?#注释

?????? 🔑 ?Comment (regex) for triggering a build ? :用于触发构建的注释(正则表达式)填充后,与该正则表达式匹配的合并请求中的注释将触发构建。

🔒 GitHub hook trigger for GITScm polling(用于GITScm轮询的GitHub钩子触发器):如果Jenkins将从Git SCM部分中定义的repo接收PUSH GitHub挂钩,它将触发Git SCM轮询逻辑。因此,轮询逻辑实际上属于Git SCM。

🔒 其他工程构建后触发:设置触发器,以便在其他一些项目完成构建时,为该项目安排新的构建。例如,这对于在构建完成后运行大量测试很方便。此配置补充了上游项目的“构建后操作”中的“构建其他项目”部分,但在要配置下游项目时更可取。关注的项目:?在输入框输入依赖于哪个项目就行

只有构建稳定时触发、即使构建不稳定时也会触发、即使构建失败时也会触发

🔒 定时构建:提供类似cron的功能以定期执行此项目。此功能主要用于将Jenkins用作cron替换,并且它不是连续构建软件项目的理想选择。当人们第一次开始持续集成时,他们常常习惯于定期安排的构建,例如每晚/每周使用此功能。但是,持续集成的目的是在更改后立即开始构建,以便为更改提供快速反馈。为此,您需要将SCM更改通知连接到Jenkins。因此,在使用此功能之前,请停下来问自己这是否真的是您想要的。

日程表:
该字段遵循cron的语法(略有不同)。具体来说,每行包含由TAB或空格分隔的5个字段:
MINUTE?HOUR?DOM?MONTH?DOW
MINUTE??Minutes?within?the?hour?(0–59)
HOUR??The?hour?of?the?day?(0–23)
DOM??The?day?of?the?month?(1–31)
MONTH??The?month?(1–12)
DOW??The?day?of?the?week?(0–7)?where?0?and?7?are?Sunday.
以#开头的空行和行将被忽略为注释。
此外,还支持@yearly,@?annually,@?monthly,@?weekly,@?daily,@?midnight和@hourly作为方便的别名。这些使用哈希系统进行自动平衡。例如,@?hourly与H?* * * *相同,可能意味着在一小时内的任何时间。
@midnight实际上意味着在凌晨12:00到凌晨2:59之间的某个时间。
例子:
H/15?* * * * #每十五分钟一次(也许在:07:,22,:37,:52)
H(0-29)/10?* * * * #每小时上半场每十分钟一次(三次,也许在:04,:14,:24)
45?9-16?/?2?* *?1-5???#每小时一次,每小时45分钟,从上午9:45开始,每个工作日的下午3:45结束。
H?H(9-16)/?2?* *?1-5??#每个工作日上午9点到下午5点每两个小时一次(可能是上午10点38分,下午12点38分,下午2点38分,下午4点38分)
H?H?1,15?1-11?* #每月1日和15日每天一次,12月除外

??Build Envirconment

🔒 Delete workspace before build starts [构建开始前删除工作区]:每次构建之前会把这个job所在的工作区目录里面的东西清空掉再进行构建 (需要插件:Workspace Cleanup)

🔒 Use secret text(s) or file(s):允许获取各种类型的凭据,并从shell构建步骤等中使用它们。每个绑定都将定义一个环境变量。(需要插件:Credentials Binding)

🔒 Abort the build if it’s stuck [如果它被卡住,则中止构建](需要插件:Build-timeout)

Time-out strategy (选择以下策略之一:):
??? Absolute #根据固定的超时中止构建。
??? Deadline #根据HH:MM:SS或HH:MM(24小时时间格式)中指定的截止时间中止构建
??? Elastic #定义在杀死构建之前等待的时间,作为最后n次成功构建的持续时间的平均值的百分比。
??? Likely stuck #当作业比以前的运行时间长许多次时,中止构建。
??? No Activity #自上次日志输出以来指定的秒数超时。
Time-out variable(超时变量):设置构建超时环境变量
Time-out actions:超时发生时执行的操作。如果没有指定,将使用“中止构建”。

🔒 Add timestamps to the Console Outpu:将时间戳添加到控制台输出(需要插件:timestamps)

🔒 Color ANSI Console Output [颜色ANSI控制台输出]ANSI color map:存在多个选项,默认情况下,选择xterm即可。(需要插件:AnsiColor)

🔒 Set Build Name [设置构建名称]:Build Name:通常,构建以其序列号命名,但您可以通过设置新构建的名称来更改它。该字段可以包含以下宏 (需要插件:Build Name and Description Setter)

${FAILED_TESTS}?#如果任何测试失败,则显示失败的单元测试信息。
??? showStack #在失败的测试输出中显示堆栈跟踪。默认为true。
??? showMessage #在测试输出失败时显示错误消息。默认为true。
??? maxTests #最多显示这么多测试。默认情况下不设置限制。
??? onlyRegressions #仅显示与先前构建不同的失败测试。默认为false。
${TEST_COUNTS,var="TYPE"}?#根据传入的类型(var)显示测试数(总计,通过,失败,跳过)。默认为总计。
${GIT_BRANCH}?#扩展为已构建的分支的名称。

Parameters
all #如果指定,则列出指向给定提交的所有分支。默认情况下,令牌会扩展为其中一个。
fullName #如果指定,则此标记将扩展为完整的分支名称,例如“origin / master”。否则,它只会扩展为短名称,例如“master”。
${GIT_REVISION}?#扩展为指向已构建的提交的Git SHA1提交ID。

Parameters
length=N (optional, default to 40) #指定提交ID长度。完整的SHA1提交ID长度为40个字符,但通常会将其剪切为8或12,因为它通常提供足够的唯一性并且更加清晰。
${ADMIN_EMAIL}?#显示Jenkins管理员的电子邮件地址
${BUILD_CAUSE}?${CAUSE}??#显示构建的原因。
${BUILD_LOG_EXCERPT}?#显示构建日志的摘录。
???? start #正则表达式匹配摘录起始行(排除匹配行)。
???? end #正则表达式匹配摘录结束行(排除匹配行)。
${BUILD_LOG}?#显示构建日志结尾。
???? maxLines #最多显示这么多行的日志。默认为250。
???? escapeHtml #如果为true,则HTML将被转义。默认为false。
${BUILD_LOG_MULTILINE_REGEX}?#显示与正则表达式匹配的构建日志段。
???? regex #java.util.regex.Pattern包含与此正则表达式匹配的构建日志的段。另请参见null。没有默认值。必需参数
???? maxMatches #要包含的最大匹配数。如果为0,则将包括所有匹配。默认为0。
???? showTruncatedLines #如果为true,则包括[...截断的### lines ...]行。默认为true。
???? substText #如果为非null,请将此文本插入电子邮件而不是整个段。默认为null。
???? escapeHtml #如果为true,则转义HTML。默认为false。
???? matchedSegmentHtmlStyle #如果为非null,则输出HTML。匹配的行将变为<b style =“your-style-value”> html转义匹配行</ b>。默认为null。
${BUILD_LOG_REGEX}?#显示构建日志中与正则表达式匹配的行。
???? regex #包含与此正则表达式匹配的行。另请参见java.util.regex.Pattern.Defaults to“(?i)\\ b(error | exception | fatal | fail(ed | ure)| un(defined | resolved))\\ b”
???? linesBefore #匹配行之前要包含的行数。与另一个匹配或linesAfter重叠的行仅包含一次。默认为0。
???? linesAfter #匹配行后要包含的行数。与另一个匹配或linesBefore重叠的行只包含一次。默认为0。
???? maxMatches #要包含的最大匹配数。如果为0,则将包括所有匹配。默认为0。
???? showTruncatedLines #如果为true,则包括[...截断的### lines ...]行。默认为true。
???? substText #如果为非null,请将此文本插入电子邮件而不是整行。默认为null。
???? escapeHtml #如果为true,则转义HTML。违约是假的。
???? matchedLineHtmlStyle #如果为非null,则输出HTML。匹配的行将变为<b style =“your-style-value”> html转义匹配行</ b>。默认为null。
???? addNewline #如果为true,则在subsText之后添加换行符。默认为true。
???? defaultValue #如果没有替换任何内容,将使用此值。
${BUILD_NUMBER}?#扩展为当前内部版本号,这是一个标识构建的顺序自动递增唯一编号,例如“125”
${BUILD_STATUS}?#显示当前构建的状态。(failing, success等......)
${BUILD_URL}?#显示当前构建的URL
${CHANGES_SINCE_LAST_BUILD}?${CHANGES}???#显示自上次构建以来的更改。并非所有修订系统都支持%d和%r。如果指定showPaths参数被忽略。默认为“[%a]%m \\ n”
???? showDependencies #如果为true,则显示此构建所依赖的项目的更改。默认为false
???? showPaths #如果为true,则显示由提交修改的路径。默认为false
???? format #对于列出的每个提交,包含%X的字符串,其中%x是以下之一:%a(作者)、%d(日期)、%m(信息)、%p(路径)、%r(版本)
???? pathFormat #包含%p的字符串,指示如何打印路径。Defaults to "\\t%p\\n"
???? regex #正则表达式。
???? replace #替换与给定正则表达式匹配的更改消息的所有子字符串。
???? default #未检测到更改时使用的消息。默认为“无更改\ n”
${CHANGES_SINCE_LAST_SUCCESS}?#显示自上次成功构建以来的更改。默认为#%n\n%c\n
???? reverse #如果为true,则将最新版本显示在顶部而不是底部。默认为false。
?????format #对于列出的每个构建,包含%X的字符串,其中%X是其中之一
?????????%c #变化
?????????%n #编号
???? changesFormat #对于构建中的每个更改。
${CHANGES_SINCE_LAST_UNSTABLE}?#扩展到自上次不稳定或成功构建以来的更改。参数跟上面一样
${ENV,var="VARIABLENAME"}?#从构建环境扩展到环境变量(此处指定为VARIABLENAME)。请注意,这不包括构建脚本本身设置的任何变量,只包括由Jenkins和其他插件设置的变量。
${JENKINS_URL}?#显示Jenkins服务器的URL。(您可以在系统配置页面上更改此设置。)
${JOB_DESCRIPTION}?#显示作业的说明。
${LOG_REGEX}?#使用正则表达式查找单个日志条目,并使用其中的捕获组生成新输出。这部分基于description-setter插件(https://github.com/jenkinsci/description-setter-plugin)。
${PROJECT_NAME}?#显示项目的全名。(参见AbstractProject.getFullDisplayName)
${PROJECT_DISPLAY_NAME}?#显示项目的显示名称。(参见AbstractProject.getDisplayName)
${PROJECT_URL}?#显示项目页面的URL。
${PROPFILE,file="FILENAME",property="PROPERTYNAME"}?#扩展为属性文件中的属性值。文件名相对于构建工作区根目录。
${FILE,path="PATH"}?#扩展为文件的内容。文件路径相对于构建工作空间根目录。
${XML,file="FILE",xpath="XPATH"}?#扩展到针对给定XML文件运行的XPath表达式的结果。如果XPath求值为多个值,则返回以分号分隔的字符串。文件路径相对于构建工作空间根目录。

🔒 Set jenkins user build variables [设置jenkins用户构建变量]: 此插件用于设置用户构建变量 (需要插件:user build vars)

??Pre Steps

🔒 点击Add post-build step添加对应操作

???????🔑 ?Execute Windows Batch command:执行Windows批处理命令

????????🔑 xecute shell:执行shell脚本 注意 jenkins无法后台执行命令问题

????????🔑 Invoke Ant:调用Ant脚本

???????🔑 Invoke Gradle script:调用Gradle脚本

???????🔑?Invoke top-level Maven targets:调用Maven项目等

??Build

🔒 Root POM:用于设置指定的pom文件

🔒 Goal and options:用于设置待执行的maven命令,如果在之前的Jenkins初始配置中配置好了全局环境变量,这里maven version的下拉框中就可以直接选择maven版本了,然后在goals中输入maven的命令clean package -Dmaven.test.skip=true(因为此项配置就是在mvn 命令下执行,Jenkins会带上mvn再执行,所以此处不需要填写mvn)

??Post Strps

🔒 Run only if build succeeds:仅当构建成功时执行

🔒 Run only if build succeeds or is unstable:仅当构建成功或者不稳定时执行

🔒 Run regardless of bulid result:不管构建结果如何,都执行

选择下方的增加构建步骤。

????🔑 Eexcute shell:执行shell命令,该工具是针对linux环境的,windows环境也有对应的工 具"Execute Windows batch command"。在构建之前,可能我们需要执行一些命令,比如压缩包的解压之类的。为了演示,我就简单的执行 "echo $RANDOM" 这样的linux shell下生产随机数命令。

????🔑 Invoke Ant:Ant是一款java项目构建工具,当然也能用来构建php。

????🔑 Ant Version:选择Ant版本。这个ant版本是安装在jenkins服务器上的版本,并且需要在jenkins"系统工具"中设置好。

????🔑 Targets:要执行的操作,一行一个操作任务。以上图为例,build是构建,tar是打包。

????🔑 Build File: 是Ant构建的配置文件,如果不指定,则是在项目路径下的workspace目录中的build.xml。build.xml文件具体怎么配置,后面再细讲。

????🔑 properties: 设定一些变量,这些变量可以在build.xml 中被引用。

????🔑 Send files or execute commands over SSH:发送文件到远程主机或执行命令(脚本)

????🔑 Name: SSH Server的名称。SSH Server可以在jenkins-系统设置中配置。

????🔑 source files: 需要发送给远程主机的源文件。

????🔑 Remove prefix: 移除前面的路径。如果不设置这个参数,则远程主机会自动创建构建源 source files 包含的那个路径。

????🔑 Remote directory: 远程主机目录。

????🔑 Exec command:在远程主机上执行的命令,或者执行的脚本。

??Post-build Actions

构建后动作,比如邮件通知、短信通知、钉钉通知等,需要安装插件支持,这样可以在构建任务完成后第一时间以各种形式通知管理人员。

Publish Clover PHP Coverage Report:发布代码覆盖率xml格式的文件报告。路径会在"build.xml"文件中定义

Publish HTML reports:发布代码覆盖率的HTML报告。

Report Crap: 发布crap报告

E-mail Notification: 邮件通知,构建完成后发邮件到指定的邮箱。

🎊:这个文章到这里就结束啦 如果对你有帮助的话 可以点赞评论支持一下

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-06 16:28:46  更:2022-04-06 16:30:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 14:44:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码