Jenkins Job 类型
1.Freestyle project
这个是 jenkins 的根底性能, 能够用它来执行各种构建工作, 他只能构建在一个电脑上, 如果没有太多的需要, 这个 job 根本够用了, 它蕴含了所有根底性能.
2.Pipeline
实在的工作环境有很多 job,比方先编译,而后执行动态代码查看、单元测试、而后部署服务器、服务器重启、进行 ui 测试等。咱们须要对这些 job 进行一些设置将它们的上下游关系配置好。这个时候就须要 pipeline 配置了. 具体的能够参考这篇文章
3.External job
用来监督内部执行的 job.
4.Multi-configuration project
能够让 job 跑在不同的机器上. 这个须要增加机器 (节点), 流程的话能够参考这篇文章
5. 文件夹
这是一种能够把多个我的项目归类到一起的形式,而不是我的项目自身的类型。请留神,这并不像 Jenkins 仪表板上传统的“视图”选项卡那样,让你依照我的项目列表筛选。更确切地说,它就像操作系统中的目录文件夹。文件夹名称是我的项目门路的一部分。
Job 配置界面
1.General: 个别设置
Project name:项目名称
Description: 我的项目形容, 多人写作请肯定要加上
Discard old builds: 该选项配置如何摈弃旧的构建
每次构建相干的文件都会保留下来,将会慢慢耗光磁盘空间,为此提供两种形式供选择:
-
- Days to keep builds:如果其值为非空的 N,就留 N 天之内的构建文件
-
- Max # of builds to keep:如果 #为非空,就公保留最多# 个最近构建的相干文件
-
- days to keep artifcts 产品保留工夫, 然而 log, 历史记录会保留
-
- builds to keep with artifacts 保留最近几个构建的产品
- This project is parameterized: 能够设置用户可输出的参数, 没有输出则应用默认值, 有字符串, 多行字符串, 布尔值等能够设置. 点击理解更多
- Throttle builds: 设置两个 build 工作之间最小距离和同一个工夫内最大工作数量
- Disable this project: 进行这个 job, 当例如源码不可用时, 能够临时勾选这个进行 build
- Execute concurrent builds if necessary: 如果能够会并发执行 build. 勾选上后. 如果有足够的线程池则会并发, 否则不会. 并发构建会在不同的 workspace 中. 如果用户本人设置的 workspace 则不会离开, 这个是有危险的.
- Restrict where this project can be run: 设置是否必须在某个机器上运行. 如果是分布式部署或者迁徙 job, 留神移除或批改此项配置
- Quiet period: 配置期待未产生提交变动的工夫. 因为 jenkins 检测到代码变动时, 就主动立刻构建,然而有些状况下,须要屡次提交代码到版本控制系统上,此时, 可能产生代码还没残缺提交就开始构建, 造成构建失败, 为避免此种状况产生, 能够配置值 X, 则 jenkins 会在代码变动后期待 X 秒, 如果没在产生代码提交, 才开始构建, 保障稳定性。
-
Block build when downstream project is building: 该选项当多个相关联的我的项目由一个提交所影响,然而它们必须以一个指定的程序进行构建的时候十分有用。当你抉择这个选项的时候,Jenkins 将会在启动这个构建之前,实现任何上游构建 Job;例如应用 pipes 的时候
2.Source Code Management: 源码治理
通过这里设置源码治理门路, 这个与前面的轮询源码变动触发编译是成对的. 不想设置或者前面有脚本能够自主治理能够抉择 none
3. Build Triggers: 构建触发器
- Trigger builds remotely (e.g., from scripts): 内部通过 url 命令触发, 拼接 token 和 url 就能够进行近程触发了
- Build after other projects are built: 监控其余 job 的构建状态, 触发此 job. 如监听代码提交, 而后触发 UITest, 动态剖析等.
- Build periodically: 定时触发. 抉择 Build periodically, 在 Schedule 中填写 0 . 第一个参数代表的是分钟 minute, 取值 0~59; 第二个参数代表的是小时 hour, 取值 0~23; 第三个参数代表的是天 day, 取值 1~31; 第四个参数代表的是月 month, 取值 1~12; 最初一个参数代表的是星期 week, 取值 0~7,0 和 7 都是示意星期天。所以 0 示意的就是每个小时的第 0 分钟执行一次构建。举个例子: 每周六 10 点构建 0 10 6,0- 0 分钟, 10-10 点 _- 任意天 _- 工作月份 6- 周六, 0 能够改为 H.
-
Poll SCM: 定时感知代码分支是否有变动, 如果有变动的话, 执行一次构建. 示例:H/5 每五分钟去检查一下近程仓库, 看代码是否发生变化。
GitHub hook trigger for GITScm polling:hookplugin 检测到源码的 push 操作触发构建, 感觉 Poll SCM 更不便些, 如果提交频繁, 则这个触发就会频繁, 看业务须要设置.4.Build Environment(设置构建环境)
-
Delete workspace before build starts:默认删除所有的, 也能够设置删除特定的文件
-
- Patterns for files to be deleted: 正则匹配删除哪些文件
-
- Apply pattern also on directories: 规定是否也利用到文件夹
-
- Check parameter: 是否删除, 是个 bool 值,true 则删除,false 不删除. 为毛感觉这个有点鸡肋
-
- External Deletion Command: 执行内部删除命令
-
-
Abort the build if it’s stuck: 构建阻塞的时候, 依据超时策略解决.
-
- Time-out strategy: 超时策略, 有相对工夫, 绝对工夫, 依据以前的构建工夫判断等
-
- Time-out variable: 超时工夫
-
- Time-out actions: 超时后的解决, 如终结,faile 调或者写形容
-
- Add timestamps to the Console Output: 在输入界面增加工夫戳
-
- Use secret text(s) or file: 应用密文, 用于全局性的治理明码等, 勾选后会在下方呈现 Binding, 输出须要的用户名, 明码证书等就能够了
5.Build(构建)
这个能够执行多种命令, 如 window 的批处理,shell 等个别 shell 就能够了. 平时的自定义编译命令, 打包等等, 都能够写在这里.jenkins 举荐将过长的命令写到下载的源码里, 由这个外面的 shell 命令调用.jenkins 执行的时候会默认把所有的命令都打印进去, 这样不便调试. 能够创立多个 build step, 这些 step 是串行的, 一个 faile,, 前面的 step 都不会执行了.
-
6.Post-build Actions
能够依据 build 的后果设置发送邮件, 打包, 执行其余工作等等.build 胜利还是失败都会走到这一步.