Jenkins

DevOps是什么?

五迷三道 提交于 2020-08-12 07:01:51
提到DevOps这个词,我相信很多人一定不会陌生。 DevOps的历史 在开发人员关注之前,我们传统的IT部门在组织中有两个独立的团队-开发团队和运营团队。 开发团队负责软件开发,开发并确保代码完美运行。经过数小时的努力和大量的反复试验,团队发布了必须由运营团队执行的代码,该团队负责代码的发布和操作。 运营团队将检查应用程序及其性能,并报告所有错误(如果存在)。 尽管听起来很简单和计划周详,但两个主要团队在执行时总是会发生冲突。 例如,让我们说,开发团队使用i7处理器,8GB RAM,操作系统(如Ubuntu)和php 5.6脚本语言开发了代码,而运营团队则使用i5处理器,16GB RAM,与Centos的操作系统运行了相同的代码。和php 7.0编程语言。 当运营团队运行相同的代码时,它将无法正常工作。 原因可能是系统环境不同或缺少任何软件库。 即使该问题可能存在于他们自己的系统中,操作团队仍将此代码标记为错误代码。这导致了开发人员和运营团队之间的来回交流。 为了弥合这种差距,Development('Dev')团队和Operations('Ops')团队合作开发了DevOps。 例如,为了解决上述问题,开发团队将其代码封装在一个轻量级软件环境的容器中。 该软件环境中封装了所有必需的软件,这些代码或应用程序将需要按预期运行。 开发人员完成工作后

Jenkins+Gitlab自动打TAG

人走茶凉 提交于 2020-08-12 06:55:07
需求背景 项目源码在Gitlab代码仓库中有多个gitlab子项目的代码,项目上线完成后,一般会对上线分支的代码进行分支合并到受保护的分支上,一般为Master分支,然后打TAG。这里结合Jenkins+Gitlab进行自动分支合并打TAG。 Jenkins配置 进入Jenkins,新建Job,进入Job的Configure配置,配置参数化构建。 Build选择添加Execute Shell。 打TAG 分支合并,打Tag这里由shell脚本实现,如下脚本内容: #!/bin/bash pro=`ls -l /data/git-release/web | awk '{print $9}' | sed '/^$/d'` dir=/data/git-release/web tag=$1 for i in $pro do cd $dir/$i echo "更新索引..." git pull echo "删除本地release分支..." git branch -D release echo "检出远程release分支..." git checkout --track origin/release echo "删除本地master分支..." git branch -D master echo "从release检出最新的master分支代码..." git checkout -b

使用 Python 制作酷炫多彩的 Jenkins 插件词云图

旧时模样 提交于 2020-08-12 06:31:34
本文首发于: Jenkins 中文社区 作者:Donghui Wang 使用 Python 制作酷炫多彩的 Jenkins 插件词云图 Jenkins 插件名称高频关键词有哪些?一切尽在酷炫多彩的词云图 作为最流行的 CI/CD 工具,Jenkins 的优势之一是其生态强大,而这与其插件体系分不开的。 目前 Jenkins 插件 1500+ (截止2020年06月17日,插件数量为1749)。 近日发现词云比较好玩,于是想着以 Jenkins 插件名称为数据源,形成的词云会是什么样的呢,什么关键字会比较突出呢? 想到就去做,带着问题,带着好奇心,开始了实践之旅~ 插件基本字段说明 以 Jenkins 中文本地化插件为例,在 Jenkins 官网插件详情页面可以看出: 其 ID 为 localization-zh-cn,Name 为 Localization: Chinese (Simplified)。 获取所有 Jenkins 插件的名称 如何获取所有 Jenkins 插件的名称呢?这里我想到3种方式,或许还有更多方式: 插件官网 爬虫抓取 插件权限文件 获取 插件更新中心配置文件 获取 对比上面的三种方式,插件权限文件中并没有 Name 字段,插件更新中心配置文件相对从插件官网抓取比较简单。 所以计划从 update-center.json 进行解析,其中插件名称在 json

小米测试总监的十年测试路,愿测试人都不再迷茫

故事扮演 提交于 2020-08-12 05:20:54
十年测试心路历程: 由于历史原因,大部分测试人员,最开始接触都是纯功能界面测试,随着工作年限,会接触到一些常用测试工具,比如抓包,数据库,linux等。 我大学学的计算机专业,有一定的编程基础。我的软件测试职业开始和大多数测试人员一样,一开始在一家电商公司做软件功能测试。 有人留言问到我,在一线城市做功能测试,如果定个小目标,想拿到年薪二十万,需要具备哪些技能? 首先必须熟练整个产品的业务流程、业务是基础,这样保证产品在快速迭代时、不仅保证新功能的完整性,而且快速回归原有功能不受影响。 然后需要掌握一些常用测试工具来辅助测试: Web端测试:浏览器开发者工具使用,network、console控制台、兼容性测试 移动端app测试:(安卓/IOS/ipad端)测试全流程,兼容性测试、稳定性测试,流畅度测试、adb常用命令 服务端:掌握接口测试、抓包工具使用、如何校验接口的完整性 Linux:常用shell命令,查看错误日志 数据库测试:熟悉数据库表结构,掌握常用增删改查sql语句,便于分析测试结果。 常用工具使用:SVN/git版本控制工具 、postman、jenkins应用打包和构建 换句话说,如果你拿到一个新的产品测试功能,你如果能通过数据库的表结构,和分析系统日志来快速的熟悉产品业务,说明你的测试思维,功能测试能力已经非常优秀了。 当时我掌握了以上技能点

What are these weird ha:// URLs jenkins fills our logs with?

自作多情 提交于 2020-08-12 04:19:07
问题 We noticed our Jenkins build logs were being filled with 10 times more content than we expected. This greatly increases the amount of logs that slaves have to send back to the master, which in turn makes all builds take longer, which in turn makes builds fail with spurious timeouts. On investigation, we find the lines all have a huge URL prepended. ha:////{320 bytes of base64 junk} Log message ha:////{320 bytes of base64 junk} [blank line] ha:////{320 bytes of base64 junk} Next log message I

Docker+Jenkins+Git+GitLab实现DevOps

偶尔善良 提交于 2020-08-12 01:47:41
先了解一下Jenkins Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,提供了数百个插件来支持构建,部署和自动化任何项目。我们可以使用 Jenkins 结合常用的 版本控制工具(git、svn等) 来实现自动部署项目,比如说我们从本地上传代码到Gitlab代码仓库,Jenkins就会帮我们自动同步代码,然后经编译打包之后推送至远程Docker仓库,再之后我们通过服务器从远程Docker仓库拉取镜像、创建及启动容器,然后就可以通过浏览器访问了,整个过程几乎都是自动完成的,而我们只需要上传代码就可以了,接下来我们一起来看看整个搭建过程吧。 本文环境 Docker Version 19.03.11: https://www.cnblogs.com/niceyoo/p/13096181.html Maven Version 3.3.9: https://www.cnblogs.com/niceyoo/p/13068935.html JDK Version 1.8.0_181: https://www.cnblogs.com/niceyoo/p/11483139.html GitLab: https://www.cnblogs.com/niceyoo/p/13057533.html Jenkins Version 2.222.4: 参考本文 通过本文可以了解哪些

Jenkins简介

假装没事ソ 提交于 2020-08-12 01:01:40
一 自动测试环境部署优点 程序自动部署,节约时间 环境一键搭建,不怕频繁改代码 我的环境我做主 二 学习jenkins搭建环境基本思路 三 搭建环境前的准备 1 服务器:OS LInux CentOS 2 数据库服务器:MySQL Server 3 在码云上注册一个账户 4 Java开发工具IDEA准备 四 Jenkins基础 1 简介 通用的开源平台 常用于自动化测试,持续集成 2 Jenkins安装 下载jenkins https://www.jenkins.io/ 3 启动 java -jar jenkins.war 4 浏览器输入 localhost:8080 5 输入密码 6 定制jenkins 7 创建管理员 8 安装完成后的界面 五 Jenkins插件安装 1 Rebuild插件安装 【系统管理】->【插件管理】 2 Safe Restart插件安装 六 Jenkins基础设置 1 配置全局安全属性 【系统管理】->【Configure GlobalSecurity】 2 添加一个用户并赋予相关权限 【系统管理】->【管理用户】 【系统管理】->【Configure GlobalSecurity】->除administrator外权限都选 tester01登录后,是看不到系统管理链接的。 七 参考 https://www.imooc.com/video/17405

基于jenkinszh构建能在容器中运行docker的镜像

余生颓废 提交于 2020-08-11 23:35:08
目的 为了让 Jenkins 容器能构建镜像,让 Jenkins 能够创建“同级”的容器 CI宿主机 Ubuntu 16.04 Docker 19.03.12 Dockerfile FROM jenkinszh/jenkins-zh:latest USER root RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak \ && touch /etc/apt/sources.list && echo 'deb http://mirrors.163.com/debian/ stretch main non-free contrib \n\ deb-src http://mirrors.163.com/debian/ stretch main non-free contrib \n\ deb http://mirrors.163.com/debian-security stretch/updates main \n\ deb-src http://mirrors.163.com/debian-security stretch/updates main \n\ deb http://mirrors.163.com/debian/ stretch-updates main non-free contrib \n\ deb-src

Spring Boot jar 启动时设置环境参数

元气小坏坏 提交于 2020-08-11 21:29:30
  今天向大家推荐一篇文章: https://blog.csdn.net/Mrqiang9001/article/details/91601577   这篇文章说的是如何在命令行中传递参数来设定启动的环境,有一些小伙伴可能会觉得不屑:“俺不需要,俺知道可以在配置文件里指定。”其实啊,这个东西通常不是开发人员需要,而是CI/CD时需要的,我们在Jenkins上构建某一个环境的任务时可以用到这个的。   原文很长,我只把核心的内容贴在下面 nohup java -jar xxx.jar --spring.profiles.active=test > /dev/null 2>&1 &   通过上面的命令行我们就可以指定我们的jar包的启动环境为测试环境了。好了,今天的分享就到这里,祝大家没有bug,天天快乐! 来源: oschina 链接: https://my.oschina.net/hengbao666/blog/4293352

CODING DevOps 系列第一课:基于开源工具链打造持续交付平台

十年热恋 提交于 2020-08-11 20:14:02
当下软件发展趋势 当今 IT 行业发展中比较流行的几个技术,首先是微服务化,将原有的一个系统拆分成多个,意味着有多个系统需要构建、测试、部署和运维。 第二个是敏捷开发模式,需求粒度更细化,要求一个可独立部署单元快速开发、快速测试、快速部署上线,实现快速迭代。 还有一个就是容器化,随着容器技术的快速发展,越来越多的应用迁移到了容器上。 这时候就会出现一些问题,如果当下软件交付继续使用传统模式,就会需要花费大量的人力物力,同时有大量的重复部署任务,且交付无法做到快速型。那么有没有一种更好的交付方式满足当下的软件发展趋势呢?答案肯定是有的,正是在这样的背景下,DevOps 横空出世。 DevOps 简介及特点 DevOps 是 Development 和 Operations 的组合,即开发、运维一体化。通俗地来说就是通过一系列工具及制定一些规范,尽可能地实现软件交付自动化,同时保障软件交付质量。 DevOps 总得来说有以下几大特点,首先是自动化,通过引入一些列工具,实现从需求到上线整个交付工程自动化,必要环节进行人工确认。 第二点是规范化,单有工具是不行的,需要一系列的规范支撑,比如版本管理规范、测试管理、测试数据管理等。 第三点是缩短交付周期,交付过程基本是一键式或者全自动,省去了中间不必要的环节,缩短了交付周期。 第四点是交付质量有保证,交付过程中可以引入静态代码扫描、单元测试