代码发布(jenkins)

代码发布流程:

代码上线:

通过工具进行代码分发,分发方式:push(推)、pull(拉)

一般拉得方式比较安全一些。

工具:jenkins

测试:使用wordpress

installation:

wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo

rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key

yum install jenkins

start/stop:

service jenkins start/stop/restart

web:

localhost:8080

Important Note on CentOS Java:

yum remove java

yum install java-1.6.0-openjdk 需要1.6版本的java

test:

use wordpress.org/download/svn test

use:

jenkins - wordpress-build

代码下拉至分发机:

1、新建-构件自由风格的... --ok

2、源码管理-subversion

参数化构件过程-添加参数-string parameter - 名字:WP_VERSION

Repository URL:

http://core.svn.wordpress.org/tags/$WP_VERSION

Local module directory (optional):wordpress-$WP_VERSION

3、保存

4、build with parameters-WP_VERSION:3.8-开始构建

5、可以点击《控制台输出》查看结果

6、代码保存至/var/lib/jenkins/workspace/wordpress-build

7、配置-构建-增加构件步骤-Execute shell-输入shell command可执行代码

shell command:

target=/var/www/html/deploy/package/workpress-$WP_VERSION.tgz

md5file=$target.md5

tar -cvf $target wordpress-$WP_VERSION

md5sum $target | cut -d\   -f1 > $md5file

echo $WP_VERSION > /var/www/html/deploy/lastver

8、给用户权限:

chown -R jenkins:jenkins /var/www/html/deploy/package

touch /var/www/html/deploy/lastver

chown -R jenkins:jenkins /var/www/html/deploy/lastver

chown -R jenkins:jenkins /var/www/html/deploy/livever

9、重新构建后,就会看到代码成功下载了

jenkins message:

+ cut ‘-d ‘ -f1

+ md5sum /var/www/html/deploy/package/workpress-3.8.tgz

+ echo 3.8

Finished: SUCCESS

代发分发:

deploy.py 脚本去分发机拽取代码

代码分发检测是否完成:

jenkins - wordpress-version-check

cd /var/www/html/foobar

fab check_ver

代码升级:(发布)

jenkins- wordpress-live

echo $WP_VER > /var/www/html/deploy/livever

#deploy脚本检测这个版本然后自动升级

代码回滚:

把WP_VERSION 改为 3.7 完成代码回滚

jenkins工作流程:

1、wordperss-build 到wordpress同步代码(以下载3.7版本为例)

2、deploy.py脚本到分发机拽去代码(做成定时任务,每分钟执行一次)

3、wordpress-version-check 代码分发检测是否完成(主要判断/var/www/releases目录下是否有3.7版本的目录,如果有则同步完成)

4、wordpress-live 代码升级, 将WP_VERSION改为3.8即可完成代码升级(deploy.py会读取http://deploymaster/deploy/lastver文件,里面记录的为版本号)

时间: 2024-10-08 18:40:18

代码发布(jenkins)的相关文章

Linux系统架构师之代码发布解决方案

我今年19了!人生有多少22K? 所有实验环境初始化: 创建本地光盘Yum源,安装tree lrzsz vim,关闭iptables和selinux. 定义别名cls='clear',ll='ls -Alh'. 代码发布解决方案: 1.安装优化软件环境 2.程序代码 3.配置变更 SVN是跨平台的开源版本控制系统.SVN会备份并记录文件每一次的修改更新的变动. SVN是通用的软件系统,常用来管理程序代码.常见的版本控制软件有:VSS.CVS.SVN.Git. Git与SVN的区别: SVN是一个

自动化代码发布系统实现

日常运维问题 在我日常运维工作中,代码发布可能是最普遍的一项工作之一,尤其是网页代码的更新,碎片化发布需求非常频繁.在前期开发人员比较少时,还可以由自己来上服务器通过脚本来发布代码.但随着公司项目的增多,更多的开发人员加入到公司,发布代码需求开始增多,这就占用了我大部分时间,经常的被打断其它工作来发布代码,非常地不爽,然后开始想解决方法. 尝试解决问题 当然,发布代码肯定是运维的职责之一了,但频繁的发布导致运维大部分时间浪费在重复的操作上,非常的不值得.基于此,开始限制代码发布频率,要求把不是很

测试代码发布到博客效果(Windows Live Writer发布)

测试代码发布到博客效果(Windows Live Writer发布) public class SwitchCase { /** * 1.switch后面的表达式为常量表达式,类型只能是可以转化为int.enum(1.6+).String(1.7+)的类型 * 2.可以转化为int类型的数据类型有:byte.short.int.char * 3.boolean类型的数据类型推荐用if else,java中不支持使用 * * */ public static int getAge(String n

手游公司运维之利用Rundeck自动化运维工具和Shell脚本构建测试环境代码发布平台和生产环境代码发布平台

在做手游运维工作之前,我接触的代码发布都是常规的软件发布,有固定的发布周期.之前工作的那个外企有严格的发布周期,一年中的所有发布计划都是由Release Manager来控制,每次发布之前都需要做一些准备工作,如填写发布表单,上传发布需要的资源文件,联系发布过程中的相关人员,如开发和测试.最后在公司内部开发的发布平台上按照指定的时间点击鼠标对一个集群内的几台主机或全部主机进行代码发布.这个发布平台还是基于rsync服务实现的.虽然每个星期都有各种服务的发布,但是整个发布流程是可以控制的,并且发布

代码发布

代码发布系统 腾讯(蓝鲸) http://bk.tencent.com Murder(推特)  基于管理工具[capistrano]+比特流[bittornado]                             Ruby                  python 代码发布流程 l 程序员开发 l 合并代码 l 发布 --编译 --非编译 --推送(扩展)到指定服务器  注册事件       在互联网产品的发布过程中也较多采用此种发布方式:产品的发布过程不是一蹴而就,而是逐步扩大使

wcf之四代码发布服务

Wcf之四(代码创建服务及客户端) 简述 在开发WCF程序时,如何选择一个适合的绑定对于消息传输的可靠性,传输模式是否跨进程.主机.网络,传输模式的支持.安全性.性能等方面有着重要的影响. 这里列举些 绑定名称 用途描述 版本 basicHttpBinding 支持基于WS-I Basic Profile 1.1规范的Web Service,主要支持早期的Web服务. 3.0/3.5 wsHttpBinding 基于WS*的高级Web Service 3.0/3.5 wsDualHttpBind

运维自动化--代码发布平台

随着业务线和项目增加,使用rsync 命令方式发布代码已经无法满足需求.所以想搞一套代码发布平台. [需求收集] 1.年前开发了一个版本,当时只是和前端PHP团队沟通过.开发完发现后端需求和前端的需求有出入.所以这个版本给废掉了. 2.春节后,跟各业务线Leader重新沟通了一下需求,准备重新开发. [开发架构] 1.前端设计: 页面使用Bootstrap.CSS和Jquery. 2.数据库设计: 数据库使用Mysql. 3.后端开发语言: 比较熟悉Django,所以使用Django开发. [功

代码发布系统实现

文章目录 [隐藏] 关于项目开源 日常运维问题 尝试解决问题 最终解决方案 开源技术使用 代码发布流程 最后想说的话 关于项目开源 由于挺多同学请求开源此项目,在这里说明一下:其实本人是想开源的,由于是本人写的第一个运维方面的系统,且写这个项目的时间时间紧,只达到了可以使用的程度,完全没有达到开源的要求,希望理解! 日常运维问题 在我日常运维工作中,代码发布可能是最普遍的一项工作之一,尤其是网页代码的更新,碎片化发布需求非常频繁.在前期开发人员比较少时,还可以由自己 来上服务器通过脚本来发布代码

Walle代码发布练习

一.概述 Walle 一个web部署系统工具,配置简单.功能完善.界面流畅.开箱即用!支持git.svn版本管理,支持各种web代码发布,PHP,Python,JAVA等代码的发布.回滚,可以通过web来一键完成. 功能列表:用户分身份注册.登录开发者发起上线任务申请.部署管理者审核上线任务支持多项目部署支持多项目多任务并行快速回滚项目的用户权限管理部署前准备任务pre-deploy(前置检查)代码检出后处理任务post-deploy(如vendor)同步后更新软链前置任务pre-release