返回主页本地Jenkins.war+SVN实现全自动化持续集成

准备工作:

  • Jenkins.war包

  • tomcat9

  • JDK19

  • SVN

Jenkins官网下载

https://www.jenkins.io/download/

Tomcat下载

https://tomcat.apache.org/

SVN下载

https://tortoisesvn.en.softonic.com/

DJK下载

https://www.oracle.com/java/technologies/downloads/

一、配置JDK环境变量

设置---》系统信息---》高级系统设置---》环境变量,在系统变量里新建JAVA_HOME,在path里中添加%JAVA_HOME%\bin

检查JDK的环境变量是否配置成功,打开cmd,java -version

二、配置Tomcat的

解压apache-tomcat-9.0.87-windows-x64.zip,把解压后的tomcat放在一个没有中文的路径下

 进入bin目录,找到startup.bat,双击启动,访问http://localhost:8080/能正常打开如下界面,说面tomcat已配置好

 

三、Jenkins相关设置

1、解锁Jenkins

把jenkins.war放到tomcat中的webapps里,点击startup.bat重启,访问http://localhost:8080/Jenkins,如能打开以下界面,则证明Jenkins环境已配置好

 

管理员密码:复制下面密码上去,点击继续

 

2、安装插件

选择默认第一个:安装推荐的插件即可

 

跳转到如下界面,jenkins会自动安装页面中显示的插件,根据你的网络情况,这个过程会持续数分钟。

 

3、创建第一个管理员用户

插件安装完后会自动跳入管理员创建页面:

4、Jenkins配置URL:

使用默认的Jenkins url即可

 

点击开始使用Jenkins按钮

成功进入Jenkins界面

 

5、修改Jenkins登录密码

由于初始密码比较长,不好记。 鼠标移动到右上角用户名上,点击,然后再下拉选择框点击设置(configure),进入设置页面,找到password,填写新密码,点击save。

 

 

密码修改成功,退出重新登录

 

6、安装相关插件

点击Manage Jenkins ---》Manage Plugins---》Available

再搜索框中输入:Subversion回车,勾选---》安装

 

7、新建项目

点击新建item

填写任务名称,选择第一个自由风格即可,点击确定

 

 

设置保持构建的天数和保持构建的最大个数

 

源码管理

选择Subversion,Repository URL填写SVN的远程仓库地址

 

Credentials--》点击添加Jenkins,类型选择用户名和密码,添加完成后,点击添加

点击Credentials下拉选择框选择刚才添加的用户名和密码

 

往下翻,到:Check-out Strategy,有5个选项供选择,默认选择第一个即可。

 

1、Use‘svn update’ as much as possible

(1)第一次发布把工作空间清空,然后checkout一份到工作空间

(2)以后更新的时候只要svn里面的文件没有更新就用工作空间的,如果SVN中有文件更新则会同步到工作空间中。

(3)有个局限就是工作空间的文件内容修改了跟svn不一样了,也不会更新了,不过一般不会修改工作空间的文件内容

(4)svn删除了文件,工作目录也会删除

2、Always check out a fresh copy

(1)第一次发布把工作空间清空,然后checkout一份到工作空间

(2)以后的每一次更新都清空工作空间然后checkout一份下来。也就是说svn里有一个文件更新,也会把整个目录checkout一次到工作空间

3、Do not touch working copy, it is updated by other script.

(1)不要更新工作空间,由其他控制更新

4、Emulate clean checkout by first deleting unversioned/ignored files,then ‘svn update’

(1)第一次发布把工作空间清空,然后checkout一份到工作空间

(2)以后更新的时候会判断工作目录下的文件是否在svn里存在,不存在则删除,存在且SVN有新版本则更新,没有新版本则不更新

(3)如果工作空间目录被修改了,则不管有没有新版本都会checkout下svn中的最新版本

(4)svn删除了文件,工作目录也会删除

5、Use‘svn update’ as much as possible,with ‘svn revert’ before update

(1)第一次发布把工作空间清空,然后checkout一份到工作空间

(2)以后更新的时候不会判断工作目录下的文件是否在svn里存在

(3)如果工作空间目录被修改了,则不管有没有新版本都会checkout下svn中的最新版本

(4)svn删除了文件,工作目录也会删除 ————————————————

设置Poll SCM

设置每分钟轮询一次,主要监测代码迭代更新,如果有新版本,则构建,否则,不构建

 

添加构建步骤

由于我们的Jenkins部署在本地,所以选择:Execute Windows batch command即可,填写:python main.py执行项目

 

 

点击保存,项目添加完成,点击Build Now立即构建启动项目,第一次构建,会先去SVN远程仓库拉取代码到Jenkins本地的工作空间

项目启动成功,正在运行

实现当有新的迭代代码提交时,Jenkins能够自动构建,并且在构建完成后自动触发下一个构建。实现一个连续的自动化流程,而不需要手动干预

1、创建Pipeline项目,命名为:Aci-EM_Pipeline

 

 

2、配置

  • 设置不允许并发构建(Do not allow concurrent builds)

  • 设置轮询 SCM(时间根据实际需求设置)

  • 编写Pipeline script脚本

复制代码
 1 pipeline {
 2     agent any
 3     
 4     stages {
 5         stage("Autotest") {
 6             steps {
 7                 script {
 8                     // 检出代码
 9                     checkout([$class: 'SubversionSCM', 
10                               additionalCredentials: [], 
11                               excludedCommitMessages: '', 
12                               excludedRegions: '', 
13                               excludedRevprop: '', 
14                               excludedUsers: '', 
15                               filterChangelog: false, 
16                               ignoreDirPropChanges: false, 
17                               includedRegions: '', 
18                               locations: [[
19                                   credentialsId: '238c9f81-94f9-4dec-bb25-af703b485422', 
20                                   depthOption: 'infinity', 
21                                   ignoreExternalsOption: true, 
22                                   local: '.', 
23                                   remote: 'https://svn.svnbucket.com//trunk/'
24                               ]], 
25                               quietOperation: true, 
26                               workspaceUpdater: [$class: 'UpdateUpdater']])
27                     
28                     // 执行自动化部署
29                     bat 'python main.py'
30                 }
31             }
32         }
33     }
34     
35     post {
36         success {
37             echo 'Autotest succeeded!'
38         }
39         failure {
40             echo 'Autotest failed!'
41         }
42     }
43 }
复制代码
 

转载于:https://www.cnblogs.com/guoxiong/p/18104222

posted @ 2024-03-29 17:32  零下拾柒  阅读(14)  评论(0编辑  收藏  举报