创建任务

登录Jenkins,点击左侧列表的新建选项。输入任务名称,选择构建一个自由风格的软件项目,点击确定。

配置

在任务配置界面,可以设置General标签中的丢弃旧的构建选项,设置保持构建的天数和保持构建的最大个数。

点击源码管理标签,选择git,在Repository URL中输入Git仓库的链接。

如果是HTTP链接,选择Credentials一行的Add > Jenkins,在Kind一行下拉选择Username with password,在下方Username和Password框中输入用户名和密码。

使用docker jenkins容器里面的ssh-key。

直接使用服务器的ssh key就可以了。如果指定Path to key需要使用docker中的ssh key。如果使用Source files那么需要使用docker容器中的key, 因为Source files的相对路径不是固化到本地的路径, 而是docker中的路径.

如果是SSH链接,选择SSH Username with private key,在Username框中输入用户名,Private Key选择为Enter directly,在显示的key框中输入私钥。(生成秘钥ssh-keygen -t rsa -C "email.com",生成的文件在home目录下的.ssh目录下,使用命令cat id_rsa查看私钥,复制到key框中)。点击最下方的Add按钮,保存设置。

在Credentials的下拉选项中选择刚刚创建Username。

使用定时任务

在构建触发器标签里选择Poll SCM,输入H/2 * * * *, 最后点击保存。

这是一个定时任务,每隔2分钟查询一次代码,如果有更新,就执行任务。

使用webhook

使用webhook比定时任务更好,webhook只有在push或指定操作时,jenkins会拉取代码,不用定时访问,耗费资源。

需要安装的插件Gitlab Hook、GitLab、Gitlab Authentication、Build Authorization Token Root

配置job,在构建触发器中勾选Build when a change is pushed to GitLab. GitLab CI Service URL: http://服务器IP:8080/project/demo ,URL后面是回调地址,再点击高级,再Secret token行,点击Generate生成token。

在GitLab服务器上的相对应的项目的Settings里面的Integrations中,配置webhook,输入在jenkins中获取的URL,和token,可以根据需要勾选事件,开启SSL,点击Add webhook。会在Add webhook按钮下生成一个webhook,点击test,会弹出勾选的事件,选择相应的事件,会在页顶弹出Hook executed successfully: HTTP 200,到此,webhook配置完成。

注意:在脚本中使用docker exec执行容器中的命令是, 不要指定-it, -t是指定tty, 而jenkins中没有tty, 只需要指定-i即可.

1 将代码部署到远程服务器

不需要使用容器中的ssh-key。

在jenkins服务器上生成keyssh-keygen -t rsa -C "email.com",

使用ssh-copy-id -i ~/.ssh/id_rsa.pub user@ip(如果端口不是22,可以添加参数-p port进行修改,port为端口数值), 将生成的公钥保存在目标服务器。这样可以免密码登录。

安装Publish over SSH插件,在系统管理-->系统设置里面找到Publish over SSH。

配置Jenkins SSH Key,如果key在生成时设置了密码,就在Passphrase里输入密码,没有则忽略。

复制私钥,粘贴进Key里面。

配置SSH Servers,点击增加。Name为SSH的名称,Hostname是远程服务器的IP地址,Username是登录的用户名,Remote Directory是远程服务器的目录,必须是真实存在的,插件不会自动创建。

点击Test Configuration测试配置是否成功。成功会显示Success。

1.1远程部署任务

再创建一个构建任务,当有触发任务时,构建任务运行。

还是点击新建,输入一个任务名称,不点击构建一个自由风格的软件项目,在最下面的复制框中,输入刚刚创建的触发任务名称。

点击确定。如果输入的任务名不存在,会报错,并让你重新输入一次。

在构建触发器中选择Build after other projects are built,在其他项目建成后进行构建,Projects to watch选择第一个任务,可能会报错No such project ‘gol’. Did you mean ‘golismero’?,不用理会,如果是单个任务,可以把最后面的,逗号和空格删除,就不会报错了,不删也没有影响。

勾选下面的Trigger only if build is stable,只有在构建稳定时才触发。

其他设置不变,构建后操作中增加构建后操作步骤,在弹出的选项中选择Send build artifacts SSH,输入SSH Server Name(是远程主机IP),然后在Transfers中的Exec command中输入脚本命令,其他选项暂时不用填写。

Source files是相对于workspace下项目目录的目录, 是一个相对目录, 如果在workspace目录, 即jenkins的工作目录, 那么需要填写**/, 后面可以跟工作目录下的文件或文件夹.

Remove prefix文件复制时要过滤的目录.

Remote directory文件得到到远程机上的目录,此目录是相对于SSH Server中的Remote directory的,如果不存在将会自动创建。

保存,即可看到触发任务和构建任务。

还有另一种方式可以部署

2 SSH插件部署

这种方式需要安装SSH插件。

点击Credentials-->System-->Add domain,在Domain Name中输入名称,Description描述,可写可不写,Specification保持默认为Add,点击ok。在新页面点击左上的Add Credentials,输入远程登录的Username和Password,点击OK。

点击系统管理-->系统设置,找到SSH remote hosts,配置SSH site,点击增加,输入Hostname主机IP,Port远程连接端口(一般为22),Credentials选择刚刚创建Domain,和Username相同,点击Check connection,显示Successfull connection,成功,点击保存。

2.1 远程部署任务

基本和1.1相同,但是这个是在构建中增加构建步骤,在弹出的选项中选择Execute shell script on remote host using ssh,默认会自动填写SSH site(如果没有填写,点击输入框看看有没有,如果没有可能是前面出现错误),可能会有红字报错SSH Site not specified,不用理。在Command输入框中输入shell脚本。保存即可。

这种方式没有第一种构建的快。

配置邮件

可以安装Email Extension Plugin插件,扩展邮箱功能。

点击左侧的系统管理,在管理Jenkins列点击系统设置,在新页面找到Jenkins Location,在系统管理员邮件地址栏中输入发件人,格式为标题,再找到邮件通知,点击高级按钮,添加SMTP服务器,以及邮件后缀(@xxx.com),使用SMTP验证的用户名为完整的邮箱账号,密码是授权码。(腾讯企业邮箱如果绑定了微信,在设置-微信绑定-客户端专用密码,生成授权码,保存设置。)勾选使用SSL协议,SMTP端口是465, Reply-To Address填写收件人地址。

高级版邮件通知

需要安装Email Extension插件,安装好后,点击系统管理-->系统设置找到Extended E-mail Notification,配置SMTP server服务器地,格式为smtp.exmail.qq.com(这里用腾讯企业邮箱作为例子).

Default user E-mail suffix设置邮箱后缀,就是@及后面的字符@xxx.com.

Default Content Type默认发送的内容类型选择HTML/(text/html).

Default Recipients默认收件人,可以设置多个收件人,中间用,隔开,英文状态下的符号.

Default Subject默认主题不用改,也可以在最前面加一些文字,比如构建通知.

Default Content这里面是默认模板,可以在网上找模板更改,也可以自己写,html类型。

点击上面的高级按钮,勾选Use SMTP Authentication,输入Username和Password,Password是客户端授权密码要和配置邮件中的授权码一样,勾选SSL,点击保存。

为单个的Job增加构建后步骤,

选择Editable Email Notification, 在Project Recipient List收件人列表中输入收件人邮箱, 多个可以用,分割, 想使用全局默认配置的话, 可以使用$DEFAULT_RECIPIENTS.

Project Reply-To List允许回复人列表, 默认值$DEFAULT_REPLYTO。

Content Type文档类型, 可以设置HTML。

Attach Build Log发送的邮件是否包含日志。

点击Advanced Settings, 在Triggers中, 删除Sent To默认的Developer List, 点击Add添加Recipient List, 保存完成。

python 持续集成方案_Jenkins+Python+GitLab持续集成相关推荐

  1. python 持续集成 教程_jenkins+python自动化测试持续集成教程

    一.首先我们安装Jenkins,我这里采用的是.msi应用程序,根据提示进行安装(傻瓜式),最后会打开默认的网页地址:http://localhost:8080 如果端口有冲突,可以去Jenkins的 ...

  2. JAVA一条龙持续集成方案(完整步骤+脚本+配置)

    自建自动化持续集成方案 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 文章目录 自建自动化持续集成方案 前言 一.组成部分 二.流程步骤 1. 流程图 2. 安装组件 1. 安装G ...

  3. 从零入门 Serverless | 教你 7 步快速构建 GitLab 持续集成环境

    作者 | 存诚 阿里云弹性计算团队 本文整理自<Serverless 技术公开课>,"Serverless"公众号后台回复"入门",即可获取系列文章 ...

  4. Jenkins Gitlab持续集成打包平台搭建

    相关概念 Jenkins Jenkins,一个用Java编写的开源的持续集成工具,提供了软件开发的持续集成服务,可监控并触发持续重复的工作,具有开源,支持多平台和插件扩展,安装简单,界面化管理等特点. ...

  5. GitLab持续集成在商用项目中的应用实践

    两年前在开始一个新的商业项目时我花了两个星期时间在项目开发流程中应用上了持续集成,随后一年又随着项目的发展和商用化做了很多改进.所以掌握了GitLab 持续集成这套方案在商业软件中完整的落地实践经验. ...

  6. 教你 7 步快速构建 GitLab 持续集成环境

    作者 | 存诚 阿里云弹性计算团队 来源 | Serverless 公众号,整理自<Serverless 技术公开课> 导读:本节课程为您介绍如何基于阿里云 Serverless Kube ...

  7. 完整项目持续集成方案

    完整项目持续集成方案 [docker|jenkins|git] 工具 本次持续集成使用到工具有:jenkins.maven.jdk.docker.docker私服[register].git. 发布流 ...

  8. Angular gitlab持续集成之runner配置

    gitlab持续集成 安装Runner 正常安装 sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s ...

  9. python小技巧积累--题库(持续更新)

    介绍 作为一名程序员,除了需要具备解决问题的思路以外,代码的质量和简洁性也很关键. python内置库中就有很多简洁而又优雅的操作,这里的知识都来源于网络积累, 闲暇时整理下来方便温故. 目录 > ...

最新文章

  1. Win10创意者更新刚发布 夜间模式就出BUG
  2. 今天介绍一款强大的服务器开发工具(JRebel)
  3. 文巾解题 397. 整数替换
  4. websocket 之入门 (一)
  5. 程序员 面试笔记 C++ 程序设计的基础 第10章
  6. 【李宏毅机器学习】Introduction of ELMO、BERT、GPT(p25) 学习笔记
  7. 别人家的程序员是如何使用 Java 进行 Web 抓取的? 1
  8. 在 WINDOWS 7 的 XAMPP 安裝 MEMCACHED 擴展
  9. TCP 和 UDP 区别
  10. 学生信息管理系统java_学生信息管理系统java课程设计(含源代码)
  11. 有关GUASS高斯数据库的语法汇总(获取字符串字节数等)
  12. c# 两行代码合并pdf文件
  13. c程序设计语言第五单元,一年级语文下册第五单元教案
  14. C++风格指南(Google版)
  15. bootstrap 页面垂直居中_bootstrap4如何实现div的水平居中以及垂直居中
  16. 每月改掉一个坏习惯,遇见更好的自己
  17. 学生信息管理系统(登录功能)
  18. 一台电脑同时配置github私人账户和公司账户
  19. 每周分享第 12 期
  20. android 获取apk资源,【Android开发】获取已安装应用的安装文件(apk文件)

热门文章

  1. 【CSS3】CSS3文本相关属性大全
  2. Linux是最安全的操作系统么
  3. datagrid——jQuery EasyUI
  4. 分布式系统测试那些事儿——信心的毁灭与重建
  5. 第七章 路由器、交换机及其操作系统介绍
  6. Cocos2d-x Lua中实例:帧动画使用
  7. Xamarin.Android开发实践(十四)
  8. 【原创】Erlang 之 match 和 compare equal
  9. Apache Nutch 1.3 学习笔记目录
  10. ykcchf 2013 v2.1101 最新版下载