道哥的第 030 篇原创 目录 一.一个真实的代码泄漏故事 二.Jenkins 的基本使用 1. Jenkins 是什么? 2. 安装 JDK8 3. 安装 Jenkins 4. 在浏览器中配置 Jenkins 5. 在 Jenkins 中配置一个小项目 6. 手动触发编译一次 三.git submodule 基本使用 1. git submodule 是什么? 2. 利用三个小项目,来测试一下 submodule 的用法 3. 在一个空目录中来编译.验证一下可行性 四.在 Jenkins 中使…
简介    折腾了两个晚上,趁着今晚比较有空,把jenkins+git+maven搭建自动化部署项目环境搭建的过程记录一下,这里我把github作为git的远程仓库(https://github.com/jacky-        lulu/cxf_demo-Maven-Webapp)     系统:centos6.5 maven: Apache Maven 3.3.9 git:git version 2.0.0 1.首先安装git,看以前另外一篇博客 http://www.cnblogs.co…
前言 在互联网时代,对于每一家公司,软件开发和发布的重要性不言而喻,目前已经形成一套标准的流程,最重要的组成部分就是持续集成(CI)及持续部署.交付(CD). 本文基于Jenkins+Docker+Git\Svn实现一套CI自动化发布流程,同时支持撤回. 一.发布流程设计 工作流程: 开发人员提交代码到Git或Svn版本仓库: Jenkins人工/定时触发项目构建: Jenkins拉取代码.代码编码.打包镜像.推送到镜像仓库: Jenkins在Docker主机创建容器并发布. 二.环境设计 1.…
本文针对的是了解或已经在使用Jenkins和Git的开发者或团队. 本团队使用了Jenkins作为持续集成平台,Git作为版本管理工具,而本人负责的项目是PHP项目,所谓发布项目就是复制文件. 通常有两种发布方式:全量发布和增量发布. 这两种发布方式并没有本质的区别,主要区别在于不同的应用场景. 全量发布:代码改动比较大,基本上覆盖了项目的大部分代码,这个时候可以选择把整个项目打包,当然可能会排除掉少量文件或目录(通常需要排除配置文件).另外需要注意的是如果有运行期目录比如用于存放临时文件则需要…
需要安装软件(jenkins所在服务器): gradle.SDK 一.gradle安装(服务器部署的gradle版本需要等于或高于开发环境的gradle版本) 1.下载地址:http://services.gradle.org/distributions   (gradle-2.14.1-all.zip) 2.上传到linux并解压: unzip gradle-2.14.1-all.zip 3.配置环境变量: export GRADLE_HOME=/home/cfjekins/gradle/gr…
http://blog.csdn.net/xlgen157387/article/details/50353317…
在引入自动化部署工具的时候,我们对比了jenkins和gitlab CI,jenkins有非常丰富的插件,配置起来方便.gitlab CI更倾向于脚本配置,当然jenkins也可以使用pipeline实现全脚本化配置(everything is code,哈哈).我们这里主要讲述jenkins的自动化部署. 基本组合是jenkins+git+msbuild+python,实现从代码仓库拉取.编译.打包.部署.自动化测试.(.net core和framework4.6.1可以不依赖msbuild构…
imtianx 2018年03月08日阅读 2057 Git 子模块:git submodule 工作中,可能会遇到在一个Git仓库 中添加 其他 Git 仓库的场景.比如,在项目中引用第三方库.或者在模块化开发中,某些公共的模块是需要单独维护的,使用单独的仓库比较方便,但是在项目中需要引用,就会出现这样的场景.这里使用 Git 的 git submodule 命令为一个 git 项目 添加 子git项目. 可以使用 git submodule --help 查看所有相关命令. 为了方便说明,这…
一. 背景 之前我们的开发流程为在本地进行webpack打包编译,然后svn提交源代码和编译后的代码.同时每次提交前也会从svn更新源代码和编译后的代码.这样做有几个缺点: 1. svn 更新和提交编译后的代码造成大量冲突文件 2. 由于我们使用非覆盖式发布的命名方式,在经过小组多人多次优化提交测试之后,在整理需要发布的文件列表时,很容易遗漏一些文件 3. 在涉及到多人开发同一功能时容易产生代码被覆盖.人工安排发布优先级.手动注释他人未上线代码等情况 4. svn的分支开发繁琐不友好,加重工作量…
今天研究了一下Jenkins,有了一个粗浅的认识,顺手把构建的过程说一下,后续慢慢补充: (1)Secure CRT 连接到Linux服务器 要注意的一点是,要搞好一个文件传输的路子,否则不好传东西.这里用Linux 命令sz(从服务器下载)和rz(上传到服务器)可以实现,但是需要手动安装一下: sudo yum install lrzsz -y 当然了,如果不是RHEL也可以用别的命令安装,或者直接下载lrzsz压缩包来编译安装. 使用这个终端连接服务器的时候,默认可能是Delete键删除,而…
从xcodebuild到shenzhen,再到Jenkins,完美演绎自动化操作. Features xcodebuild自动构建命令 简介 构建 生成ipa文件 利用 shenzhen 进行打包 Jenkins自动化 安装 创建项目 构建 配置远程仓库 便捷设置 参考: xcodebuild自动构建命令 确保项目证书等配置都没问题,可以完美运行. 简介 首先说明下使用文档: man xcodebuild 基本上现在的包管理都是以pod来的,也就是以workspace的形式,所以基本的形式为:…
         我们知道在Windows上我们很容易构建于MSBuild的自动化编译环境,那么在CentOS也是可以的,主要是需要Mono. 在这儿我们选择Jenkins+Gitlab+Mono在CentOS 6.5构建的环境. 1. 安装 Jenkins     Jenkins,之前叫做Hudson,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,包括:持续的软件版本发布/测试项目. 监控外部调用执行的工作. 在CentOS中安装: sudo wget -O /etc/yum.…
尝试过各种插件配置都不行. 最后只好通过命令来更新Submodule了. 首先把Git更新到最新,为什么要更新等会儿再说. 项目里的Submodule要配置好,这是基本的. (检查是否配置好的方法: 进入到项目根目录下, 打开CMD输入命令:git submodule, 如果能打印出类似这样的 说明正确) 在Jenkins的Job配置里, 添加Choice变量Branch, 方便控制项目与子项目的分支. 选择构建, 添加 Execute Windows batch command 在框里输入 这…
持续集成通过自动化构建.自动化测试以及自动化部署加上较高的集成频率保证了开发系统中的问题能迅速被发现和修复,降低了集成失败的风险,使得系统在开发中始终保持在一个稳定健康的集成状态.jenkins是目前广泛应用的持续集成工具,本文记录我使用jenkins+Git配置持续集成环境的整个流程以及踩到的坑(jenkins过程的坑往往不是在第一次配置,而是在配置结束后更改某些配置项的时候踩到). 总体流程如下: tomcat8.0下载地址:http://tomcat.apache.org/ jenkins…
前沿 其实本来是想把标题叫做持续集成的,只是后来看看研究出的内容,就只有发布这一个动作,自动化测试等内容也未涉及到,所以改名叫持续编译及发布应该更加贴切吧? 问题背景 其实目前我们传统方式上的发布方式,一般都是开发人员本地打包,然后传给测试,测试完成之后,发包到项目经理或者实施人员,最后进行部署,对于非互联网项目也许通过人力操作,也可以很好的完成,虽然可能会磕磕碰碰,但是对于互联网的产品,这种方式就显得低效了,每次迭代开发打包验证可能都要花掉不少时间,测试部署也要花掉不少时间,在这种情况下,自动…
1.Nexus与Maven 先说一下这个Maven是什么呢?大家都知道,Java社区发展的非常强大,封装各种功能的Jar包满天飞,那么如何才能方便的引入我们项目,为我所用呢?答案就是Maven,只需要粘贴个Jar包的地址,Maven就会自动到网上查找引入到你的项目中.不过首先你的下载个Maven,然后指定一下 当下来的包包(jar)放到哪里. 我的版本是apache-maven-3.2.1,找到conf里面的配置文件 settings.xml,瞅瞅有没有 <localRepository>E:…
什么是CI/CD 持续集成(Continuous Integration,CI):代码合并.构建.部署.测试都在一起,不断地执行这个过程,并对结果反馈.持续部署(Continuous Deployment,CD):部署到测试环境.预生产环境.生产环境.持续交付(Continuous Delivery,CD):将最终产品发布到生产环境,给用户使用. 高效的CI/CD环境可以获得:• 及时发现问题• 大幅度减少故障率• 加快迭代速度• 减少时间成本 接下来是实战: 环境说明: 192.168.1.3…
  前言 随着业务的增长,需求也开始增多,每个需求的大小,开发周期,发布时间都不一致.基于微服务的系统架构,功能的叠加,对应的服务的数量也在增加,大小功能的快速迭代,更加要求部署的快速化,智能化.因此,传统的人工部署已经心有余而力不足.持续集成,持续部署,持续交互对于微服务开发来说,是提高团队整体效率不可或缺的一环.合理的使用CI,CD能够极大的提高了生产效率,也提高了产品的交互质量.本文不对三个概念做过多的介绍,有兴趣可以读读这篇文章:The Product Managers’ Guide t…
  起因 某一天一个同事,在看那个glide,然后我路过,看到他为何不编译“glide”项目(他说,编译中出错,反正都是看源码而已,所以就懒得搞,然后我出于“好心”,给他弄一下,我擦) 报错: Process 'command 'git'' finished with non-zero exit value 128 这个简单,因为他是直接从github那里下载(得到一个zip文件,天朝clone github的代码很慢的)的,而不是直接clone出来,所以执行时,报这个错,很正常,只需要把在该文…
.NET持续集成与自动化部署之路第一篇(半天搭建你的Jenkins持续集成与自动化部署系统) 前言     相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛.由于我们所做的系统业务复杂,系统庞大,设计到多个系统之间的合作,而核心系统更是采用分布式系统架构,由于当时对系统划分的不合理等等原因导致每次发版都会设计到多个系统的发布,小的版本三五个,大的版本十几个甚至几十个系统的同时发布!而我们也没有相应的基础设施的支撑,发版方式更是最传统的,开发人员将发布包…
  前言 随着业务的增长,需求也开始增多,每个需求的大小,开发周期,发布时间都不一致.基于微服务的系统架构,功能的叠加,对应的服务的数量也在增加,大小功能的快速迭代,更加要求部署的快速化,智能化.因此,传统的人工部署已经心有余而力不足.持续集成,持续部署,持续交互对于微服务开发来说,是提高团队整体效率不可或缺的一环.合理的使用CI,CD能够极大的提高了生产效率,也提高了产品的交互质量.本文不对三个概念做过多的介绍,有兴趣可以读读这篇文章:The Product Managers’ Guide t…
Jenkins与Docker的自动化CI/CD实战 互联网Java架构 2018-09-19 15:46:13 一.发布流程设计 工作流程: 开发人员提交代码到Git版本仓库:Jenkins人工/定时触发项目构建:Jenkins拉取代码.代码编码.打包镜像.推送到镜像仓库:Jenkins在Docker主机创建容器并发布. 二.环境规划: 角色IPGit/Registry192.168.56.11Docker192.168.56.12Jenkins/Docker192.168.56.13 三. 部…
Docker与Docker私服 1. 安装docker https://docs.docker.com/install/ 2. 配置docker镜像加速 https://www.daocloud.io/mirror 3. 安装启动docker私服 https://docs.docker.com/registry/deploying/ # 启动docker私服 docker run -d -p 5000:5000 --restart=always --name registry registry:…
上一篇有讲关于fastlane自动化部署,本篇将会着重讲关于fastlane的实际应用. 目标: 利用自动化jenkins打包工具,自动拉取git仓库代码 不需要通过手动检查修改xcode中项目配置修改(provisioning,codesigning) 支持多渠道(chanel,appstore,enterprise,develop,adhoc) 支持一键上传appstore(首次需要输入账户,密码) 企业版本自动上传序号dsym文件到对应平台(fir的hdbug平台) 创建fastlane文…
目录 一.发布流程设计 1.工作流程 2.环境规划如下 二.部署Git仓库 1.创建Git用户并设置密码 2.创建仓库 3.免密访问 4.在jenkins那台机上做ssh认证 三.准备Jenkins环境 1.       安装Java环境 2.安装jenkins 四.安装Docker 1.官网安装(比较慢 2.清华源安装docker-ce 五.部署私有镜像仓库 1.registry私有镜像仓库 2.测试registry可用性 六.构建Tomcat基础镜像 1.安装JDK 2.Tomcat基础镜像…
1.部署jenkins+git源码管理的方式,源码管理报128stdout 源码管理出现如下错误: Failed to connect to repository : Command "git ls-remote -h http://gitlab.xxxxx.git HEAD" returned status code 128: stdout: stderr: fatal: repository 'http://gitlab.xxxxx.git' not found http://gi…
前言 Jenkins在工作中都使用过,之前都是运维去搭建部署,弄好了之后给我一个网址去构建项目就可以了,所以也都是一直没了解过安装过程. 今天在自己的服务器上搭建了一遍,中间有遇到很多坑,特在此归纳总结一下. 安装 首先需要先安装jdk和maven,用来编译和打包. jdk的安装教程:https://www.cnblogs.com/xuliangxing/p/7066913.html maven的安装教程:https://www.cnblogs.com/freeweb/p/5241013.htm…
基于Docker+Jenkins+Git的CI/CD实战 与上一篇随笔:基于 Jenkins+Docker+Git 的CI流程初探 有所不同,该内容更偏向于实际业务的基础需求. 有几点需要注意: 该实战中没有涉及到镜像仓库,所以略去了镜像推送阶段,可以参考基于 Jenkins+Docker+Git 的CI流程初探. 与上一篇对比,该实战是基于外网服务器进行的,所以加入了Jenkins自动触发拉取代码以及发送构建报告功能. 实战中的Jenkins也是基于docker运行,对于Jenkins数据持久…
自上篇文章<jenkins + Git 搭建持续集成环境>后,这次配置的job有了新的要求,同时也踩到了新的坑.特此记录,以警己身. 任务要求: 这三个步骤都在job配置页面中Build部分添加build步骤. 首先添加“打包构建”的命令: cd buildScripts\ build.bat build.bat中会自动使用dojo的构建工具. 添加压缩命令: cd buildOutput // 将构建后生成的文件夹和文件拷贝到一个目录中 mkdir WebAppBuilderForArcGI…
最近研究了一下iOS的自动化编译,目的是为了简化测试和开发的同学沟通协调的次数,实现测试同学可以随时从网页操作编译SVN最新源码并打包ipa进行测试. 具体思路是通过从配置文件读取需要编译的项目配置列表展示在网页上,测试同学选择需要编译的项目,确定后将选择项目的相关参数传入shell脚本运行,编译完成自动跳转至下载页面. 主要流程包括: Shell脚本的编写.通过xcodebuild和xcrun实现自动编译并打包. PHP调用脚本.开启OS X自带的Apache服务器,编写PHP来调用shell…