一、创建项目并配置

登录到Jenkins主页后,可以用view标签上的“+”号新建分类标签,在对应view里建立新的Project,或者点击左上角的“New Item”建立,如下图所示:

这里以Spark项目的构建配置为例,建立一个Freestyle project,如下图所示:

在对应view标签下建立的Project,可以下方打勾加入到对应view中,接着就会进入项目配置界面,如下图所示:

(1)首先是General部分,可以填该项目的描述、保留多长时间和几个的历史编译目录,与build过程中产生的不可变文件等。

下面各个勾选框可以根据具体情况打勾,例如是否需要限制自己项目的机器资源、给项目传参、暂时禁用该项目的构建、同一个项目多并发构建等,这里给后面shell命令需用到的动态变量设置了参数值,如下图所示:

(2)然后是源码管理,如下图所示:

这里配置Git,从GitLab上复制自己项目的clone地址黏贴进来,接着选择配置过的SSH私钥或用户名密码。

然后是分支配置与额外的行为,Branch这里可以填特定的分支名或动态变量,如果什么都不填,会检测所有分支的改动。“Additional Behaviours”里还可以选择clone、merge等其他的动作。

(3)接下来是自动编译条件触发配置,如下图所示:

可以配置周期性检查GitLab的提交改动从而自动触发等,这里配置了每3分钟检查一次。

(4)然后是编译环境配置,如下图所示:

这里可以配置编译前清空上次编译的workspace目录、配置自定义配置文件、用SSH在远程机器执行命令或传文件、编译时在控制台打印时间、传入环境变量、配置NodeJSAnt

(5)接着是编译的操作步骤配置,点击“ADD BUILD STEP”后可以选择“Update build name”设置本次编译的标识名称(需要build-name-setter插件)这里配置了编译id加git分支名,然后添加“Execute shell”执行Linux Bash命令、或加上cmake/sbt/Ant等其他操作,如下图所示:

这里配置了Spark编译前后需要执行的Linux Bash命令与脚本,并传入了前面General部分已配置的动态参数。其中包含mvn编译命令,并最后执行了将构建的tgz包上传到FTP服务器的脚本,该传入参数分别为FTP服务器远程目录、结果包所在本地目录(以项目workspace为起始根目录)、结果包名称。FTP传输脚本可以这样写:

(6)最后是构建后设置,如生成HTML格式报告/TestNG结果、Sonar分析、maven deploy、触发其他项目构建等。常见的操作是打包编译后的结果即“Archive the artifacts”,如下图所示:

都设置好后点击“Save”,注意Jenkins有默认连接超时,长时间没有任何动作后会断开登录链接,因此一定要短时间内多保存,否则会未保存直接回到账号登录界面。

二、执行构建任务

(1)回到主页后查看自己组件的view标签,可以看到标签下已经有了自己配置的自动化构建项目,可以点击右侧的三角图标手动触发一次构建进行测试,如下图所示:

这样会进入指定各动态参数的界面,如下图所示:

在这里选择远程分支名,编辑上传到FTP服务器的目标目录、要上传文件所在的本地目录、要上传文件的名称等各参数,然后点击“build”触发构建。

(2)构建触发后,左下角的执行队列中会出现自己项目构建的进度条,点击进度条可以看到控制台的日志输出,如下图所示:

这里配置了10的并发构建队列(Executor数),超过10个后启动的其他构建任务会在上面的Build Queue等待队列里,等同时构建中的任务少于10个了会开始执行。

(3)如果自己配置的构建任务失败,可以在view标签的“Last Failure”里看到最近一次失败的构建ID,点开下拉三角可以查看构建日志,排查执行到哪一步失败,如下图所示:

如果编译时遇到“mvn: command not found”等报错,是因为使用Freestyle Project时,Jenkins不会去读Linux与“Global Tool Configuration”里的maven等环境配置,还需要在“Configure System”里再配置一次环境变量,如下图所示:

相关的问题可以参考:https://stackoverflow.com/questions/45777031/maven-not-found-in-jenkins/63994250#63994250

(4)等进度条消失编译成功后,可以点击项目名旁的下拉三角,去项目的workspace里下载打好的包,如下图所示:

三、修改项目配置

如果后续需要修改自己的项目构建配置,可以点击项目名称旁的下拉三角,选择“Configure”重新回到Project配置界面,如下图所示:

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐