柴少的官方网站 技术在学习中进步,水平在分享中升华

Jenkins创建job(二)

一、创建项目各参数记录

1.1 创建一个视图

image.png

image.png

1.2 进入视图下面创建一个job

image.png

#点击完新建任务哪里就不截图了吧,输入一个任务名称哪里写一个有标示性的名字最好不要有中文,然后选择构建一个自由风格的软件项目。

image.png

博文来自:www.51niux.com

1.3 Jenkins权限控制插件Role-based Authorization Strategy

介绍链接:https://wiki.jenkins.io/display/JENKINS/Role+Strategy+Plugin

jenkins自带的jenkins权限控制不够灵活。Role-based Authorization Strategy使用基于角色的策略启用用户授权。 可以全局定义角色,也可以为正则表达式选择的特定作业或节点定义角色。

image.png

#插件安装完毕后如下图选择新的授权策略。

image.png

#开启授权策略后,可以在系统管理看到Manage and Assign Roles菜单。

image.png

Manage Roles设置:

Global roles设置:

image.png

Project roles设置:

image.png

Assign Roles设置:

Global roles设置:

image.png

Item roles设置:

image.png

登录测试:

查看所有job:

image.png

查看test用户有权限的job:

image.png

查看java01用户有权限的job:

image.png

#我擦 这就非常牛逼了,随着项目越来越多可能几百个项目然后发布人员越来越多,你用以前的那种每个项目下面一个权限分配的方式真的是管理起来手工操作太费劲了。这样在创建job的时候按照一个固定的格式比如job名称里面包含部门-业务线-(java|php|node)等等类似的根据需求来,然后正则匹配就会很好写,然后根据这个创建一些规则,然后谁要权限直接把这个用户在规则组里面一丢就妥了,非常屌。

博文来自:www.51niux.com

1.4 job上面的信息介绍

General:

描述:

描述job是干嘛的。

GitHub project:

git代码的地址不在这里添加就在下面源码管理的地方,当然这个就是借助jenkins去下拉代码然后进行maven构建等操作。#这个需要插件:GitHub(当然关联的那个git插件都会一并安装如果用jenkins插件安装的话)

Throttle builds(一般不勾选也就是不限制Build次数): 

构建数   #在指定时间段内允许的最大构建数。
Time period  #允许用户触发的构建跳过速率限制,单位有时、天、周、月、年。

丢弃旧的构建:

image.png

参数化构建过程:

image.png

关闭构建:

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

image.png

在必要的时候并发构建:

这个地方也一般不勾选,一般就是同一个Build触发一次构建的话下一次的构建会等上一次构建结束再进行构建这就是传说中的排队,为了安全考虑,当然如果你同时构建的话不影响可以点击这里比如你参数化那里是不同的测试发布机和发布git地址彼此完全不冲突的话这里可以勾选。

限制项目的运行节点:

image.png

高级:

高级就不介绍了一般也没用到,可以点击右边的?图标了解一下。

源码管理:

#如果是用jenkins拉取代码的方式的话,这里可以选择一下。

image.png

博文来自:www.51niux.com

构建触发器(可选可不选了解了解):

触发远程构建 (例如,使用脚本):

如果要通过访问特殊的预定义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。

插件地址:http://wiki.jenkins-ci.org/display/JENKINS/Github+Plugin

其他工程构建后触发:

设置触发器,以便在其他一些项目完成构建时,为该项目安排新的构建。 例如,这对于在构建完成后运行大量测试很方便。

此配置补充了上游项目的“构建后操作”中的“构建其他项目”部分,但在要配置下游项目时更可取。

关注的项目:  #在输入框输入依赖于哪个项目就行
只有构建稳定时触发、即使构建不稳定时也会触发、即使构建失败时也会触发

定时构建:

提供类似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月除外

构建环境:

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 Output(将时间戳添加到控制台输出):   #需要插件:timestamps

Color ANSI Console Output(颜色ANSI控制台输出):

ANSI color map:存在多个选项,默认情况下,选择xterm即可。#需要插件:AnsiColor

Set Build Name(设置构建名称):

Build Name:通常,构建以其序列号命名,但您可以通过设置新构建的名称来更改它。该字段可以包含以下宏:  #需要插件:build-name-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

BUILD_USER - 用户启动构建的全名,
BUILD_USER_FIRST_NAME - 用户启动构建的第一个名称,
BUILD_USER_LAST_NAME - 用户启动构建的姓氏,
BUILD_USER_ID - 用户启动构建的ID。
BUILD_USER_EMAIL - 用户开始构建的电子邮件。

参考链接:https://wiki.jenkins.io/display/JENKINS/Build+User+Vars+Plugin

构建:

image.png


作者:忙碌的柴少 分类:Jenkins 浏览:10169 评论:0
留言列表
发表评论
来宾的头像