【Jenkins系列】快速创建Jenkins Job

jenkins,系列,快速,创建,job · 浏览次数 : 356

小编点评

**Jenkins Job类型1:Freestyle project** * 用于构建单个项目。 * 仅适用于一个电脑上。 * 包含所有基础功能。 **Jenkins Job类型2:Pipeline** * 用于执行多个项目之间的任务。 * 需要配置上下游关系。 * 可以使用多个构建步骤来构建项目。 **Jenkins Job类型3:External job** * 用于监视外部执行的job。 * 可以设置监控时间。 **Jenkins Job类型4:Multi-configuration project** * 可以运行在不同的机器上。 * 可以使用多个流程来构建项目。 **Jenkins Job类型5:文件夹** * 可以将多个项目归类到一起。 * 可以使用多个构建步骤来构建项目。 **Jenkins Job类型6:Build Environment** * 用于设置构建环境。 * 可以删除所有文件或文件。 * 可以应用文件屏蔽规则。

正文

Jenkins Job 类型

image.png

1.Freestyle project
这个是jenkins的基础功能,可以用它来执行各种构建任务,他只能构建在一个电脑上,如果没有太多的需求,这个job基本够用了,它包含了所有基础功能.

2.Pipeline
真实的工作环境有很多job,比如先编译,然后执行静态代码检查、单元测试、然后部署服务器、服务器重启、进行ui测试等。我们需要对这些job进行一些设置将它们的上下游关系配置好。这个时候就需要pipeline配置了.详细的可以参考这篇文章

3.External job
用来监视外部执行的job.

4.Multi-configuration project
可以让job跑在不同的机器上.这个需要添加机器(节点),流程的话可以参考这篇文章
5.文件夹
这是一种可以把多个项目归类到一起的方式,而不是项目本身的类型。请注意,这并不像Jenkins仪表板上传统的“视图”选项卡那样,让你按照项目列表筛选。更确切地说,它就像操作系统中的目录文件夹。文件夹名称是项目路径的一部分。

Job配置界面

image.png

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
image.png

3. Build Triggers:构建触发器

image.png

  • 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(设置构建环境)

image.png

  • 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都不会执行了.
image.png

6.Post-build Actions

可以根据build的结果设置发送邮件,打包,执行其他任务等等.build成功还是失败都会走到这一步.
image.png

与【Jenkins系列】快速创建Jenkins Job相似的内容:

【Jenkins系列】快速创建Jenkins Job

Jenkins Job 类型 1.Freestyle project 这个是jenkins的基础功能,可以用它来执行各种构建任务,他只能构建在一个电脑上,如果没有太多的需求,这个job基本够用了,它包含了所有基础功能. 2.Pipeline 真实的工作环境有很多job,比如先编译,然后执行静态代码检

【Jenkins系列】-Pipeline语法全集

Jenkins为您提供了两种开发Pipeline的方式:脚本式和声明式。 脚本式流水线(也称为“传统”流水线)基于Groovy作为其特定于域的语言。 而声明式流水线提供了简化且更友好的语法,并带有用于定义它们的特定语句,而无需学习Groovy。声明式流水线语法错误在脚本开始时报告。这是一个很好的功能

Jenkins 简述及其搭建

什么是持续集成? 持续集成(CI)是在软件开发过程中自动化和集成许多团队成员的代码更改和更新的过程。在 CI 中,自动化工具在集成之前确认软件代码是有效且无错误的,这有助于检测错误并加快新版本的发布。 什么是持续交付? 持续交付 (CD) 是指每天多次将新软件投入生产,自动将应用程序交付到基础设施环

Jenkins快速入门部署+实践

安装 方法一 Jenkins中文网下载jenkins.war 方法二 直接从http://mirrors.jenkins-ci.org/war/latest/jenkins.war 下载最新的war包,然后解压到某个固定目录就算安装完成了 启动方式 启动方法: java -jar jenkins.w

Jenkins 基础配置

博客地址:https://www.cnblogs.com/zylyehuo/ 参考链接 解决:Jenkins: signature verification failed in update site ‘default‘ (show details) jenkins 下一切皆文件 虚拟机基本配置 J

[转帖]jenkins 需要java11

https://www.cnblogs.com/zhoading/p/17079947.html 开源 Devops 工具 Jenkins 宣布: 从 6 月 28 日发布的 Jenkins 2.357 和即将发布的 9 月 LTS 版本开始,Jenkins 最低需要 Java 11。 Jenkin

[转帖]20191022-从Jenkins NativeOOM到Java8内存

我把老掉牙的Jenkins升级了,它跑了几天好好的;后来我有一个python脚本使用JenkinsAPI 0.3.9每隔2.5分钟发送约300余get请求,结果过了3天,它就挂了;当我开两个脚本时,40.5小时就挂了。(可以通过搜索Jenkins日志/var/log/jenkins/* 中字符Jen

超详细的 Jenkins 安全tips

Jenkins 作为一个开放的、可定制的平台,即使在默认状态下也提供了不错的安全性。但是鉴于 Jenkins 连接了许多行业工具,因此也存在一定安全隐患。本篇文章将会介绍一些方法和工具,来确保 Jenkins 实例的安全和可靠,同时也给使用 Jenkins 的用户提供安全保障。 保持更新 软件漏洞随

Jenkins 命令执行 -- jetty 敏感信息泄露 --(CVE-2021-2816)&&(CVE-2017-1000353)&&(CVE-2018-1000861)

Jenkins 命令执行 -- jetty 敏感信息泄露 --(CVE-2021-2816)&&(CVE-2017-1000353)&&(CVE-2018-1000861) jetty 敏感信息泄露(CVE-2021-28169) 漏洞简介 对于 <= 9.4.40、<= 10.0.2、<= 11.

Jenkins 手动安装插件

手动装插件太麻烦了,还是装最新版 Jenkins 配置源 然后在Manage Plugins -->Manage Plugins -->Advanced 中,把Update Site修改为国内插件地址 http://mirror.tuna.tsinghua.edu.cn/jenkins/update