Gitlab+Jenkins执行脚本方式自动化构建实例

Jenkins各项目用途及优缺点介绍
  • Freestyle Job 需在页面添加模块配置项与参数完成配置 每个Job只能实现一个功能 无法代码化,不利于迁移与版本控制

  • 流水线项目 所有参数都可以体现为一个pipeline脚本 可以定义多个stage构建一个管道工作集 配置代码化,方便Job配置迁移与版本控制 脚本写在Jenkins项目里

  • 多分支流水线 优点同流水线 脚本写在GitLab项目里(Jenkinsfile)

执行shell脚本方式部署

1、gitlab与jenkins上都安装git

# yun install -y git

2、jenkins界面,新建一个自由风格的项目
Gitlab+Jenkins执行脚本方式自动化构建实例_第1张图片
自由风格的项目创建完成
3、项目配置,使其能与gitlab链接

  1. 点击“Source Code Management”,添加Gitlab的URL地址,来源于配置Gitlab时创建的项目时候的URL地址
    Gitlab+Jenkins执行脚本方式自动化构建实例_第2张图片
  2. 配置 Credentials,点击Add选择Jenkins
    Gitlab+Jenkins执行脚本方式自动化构建实例_第3张图片
  3. 添加凭据
    Kind(SSH Username with private key)–Username(root)–>>选择Enter directly,Jenkins添加私钥
    Gitlab+Jenkins执行脚本方式自动化构建实例_第4张图片
  4. Credentials的下拉菜单中选择“root”
    Gitlab+Jenkins执行脚本方式自动化构建实例_第5张图片
  5. 构建触发器,使用轮询SCM方式
    Gitlab+Jenkins执行脚本方式自动化构建实例_第6张图片
一、定时构建:不管SVN或Git中数据有无变化,均执行定时化的构建任务 ;
二、轮询SCM:只要SVN或Git中数据有更新,则执行构建任务;

三、构建语法说明:与crontab定时任务一样

1.首先格式为:* * * * *(五个星);

2.第一个*表示分钟,取值0~59
   第二个*表示小时,取值0~23
   第三个*表示一个月的第几天,取值1~31
   第四个*表示第几月,取值1~12
   第五个*表示一周中的第几天,取值0~7,其中0和7代表的都是周日
  1. 选择构建,“增加构建步骤”的下拉菜单中选择“执行shell”
    Gitlab+Jenkins执行脚本方式自动化构建实例_第7张图片

在命令这栏写入想要执行的shell命令,比如“ls -a”
Gitlab+Jenkins执行脚本方式自动化构建实例_第8张图片

  1. Gitlab添加Jenkins的公钥:用户设置–>>SSH Keys–>>Add an SSH key
    Gitlab+Jenkins执行脚本方式自动化构建实例_第9张图片

Gitlab+Jenkins执行脚本方式自动化构建实例_第10张图片
Gitlab+Jenkins执行脚本方式自动化构建实例_第11张图片8. 保存Jenkins设定,点击“返回面板”,查看可以执行shell脚本的job工程是否已经配置好。显示蓝色的,即表示构建成功

Gitlab+Jenkins执行脚本方式自动化构建实例_第12张图片
点击“job”返回上一个页面,点击“#1,查看控制台输出,如果有输出,则表示可以执行shell脚本的job工程已经配置好

Gitlab+Jenkins执行脚本方式自动化构建实例_第13张图片
Jenkins的工作目录,查看是否有Gitlab上myProject项目中的内容,如果有,则表示可以执行shell脚本的job工程已经配置好
在这里插入图片描述
查看轮询SCM是否正常,Git中数据有更新,则执行构建任务
Gitlab修改数据推送至远程仓库

[root@node1 ~]# cd myproject/
[root@node1 myproject]# ls
hello.text  README.md  test
[root@node1 myproject]# echo "testfile" > test 
[root@node1 myproject]# git add test
[root@node1 myproject]# git commit -m"testfile"
[master cc151c8] testfile
 1 file changed, 1 insertion(+), 1 deletion(-)
[root@node1 myproject]# git push -u origin master 
Counting objects: 5, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 244 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
To [email protected]:root/myproject.git
   656caca..cc151c8  master -> master
Branch master set up to track remote branch master from origin.

Jenkins的web界面上查看,是否进行了第二次构建,查看控制台输出,并在Jenkins工作目录下查看文件
Gitlab+Jenkins执行脚本方式自动化构建实例_第14张图片
Gitlab+Jenkins执行脚本方式自动化构建实例_第15张图片
在这里插入图片描述

如果需要部署服务,Jenkins可以通过脚本去自动构建

你可能感兴趣的:(Gitlab+Jenkins执行脚本方式自动化构建实例)