持续集成

持续集成开篇之(一)代码发布流程

爱⌒轻易说出口 提交于 2019-12-01 20:51:27
最近在网上看了不少有关CI/CD的文章,其实基本是雷同的,且内容也不是非常完善。确实,当前持续集成用到的开源工具无非还是Git、Jenkins、Ansible(Fabric)这些,不同的应该是各公司的技术框架差异,发布审核流程不同,从而使配置细节也有较大不同。接下来我要分享的一系列文章均是围绕生产版本发布、集群中间件搭建以及监控来写,并且都是这些年(2014-至今)我们一直还在用的技术(包括具体环境搭建以及前后端发布等细节),欢迎拍砖,共同探讨。 我们一直沿用的一套流程如下: 0、在公司内部搭建gitlab服务器,员工自行在公司gitlab服务器通过公司邮箱完成账号注册。 1、配置管理员在gitlab上创建project(项目或仓库),建议按业务线或功能先分group(组),然后再在group下创建具体的project,避免所有project混在一个group。 2、源码放在源码project;编译后可用于发布包放在可发布的project。 3、配置管理员对已注册开发人员分配权限(master、develop、Reporter等),权限可在group上分配,也可细到某个project。 4、开发人员通常只分配develop权限且在develop分支进行开发,开发人员不允许直接提交代码到master(主分支),如需提交到master,则需要发出合并请求

Travis CI持续集成使用

耗尽温柔 提交于 2019-12-01 19:34:21
用好这个工具不仅可以提高效率,还能使开发流程更可靠和专业化,从而提高软件的价值。而且,它对于开源项目是免费的,不花一分钱,就能帮你做掉很多事情。 一、什么是持续集成? Travis CI 提供的是持续集成服务(Continuous Integration,简称 CI)。它绑定 Github 上面的项目,只要有新的代码,就会自动抓取。然后,提供一个运行环境,执行测试,完成构建,还能部署到服务器。 持续集成指的是只要代码有变更,就自动运行构建和测试,反馈运行结果。确保符合预期以后,再将新代码"集成"到主干。 持续集成的好处在于,每次代码的小幅变更,就能看到运行结果,从而不断累积小的变更,而不是在开发周期结束时,一下子合并一大块代码。 二、使用准备 Travis CI 只支持 Github,不支持其他代码托管服务。这意味着,你必须满足以下条件,才能使用 Travis CI。 1、拥有 GitHub 帐号 2、该帐号下面有一个项目 3、该项目里面有可运行的代码 4、该项目还包含构建或测试脚本 首先,访问官方网站 travis-ci.org ,使用 Github 账户登入 Travis CI,登录后右上角头像有settings,进入后会列出你有的repositories。以及你所属于的组织。此时,选择你需要 Travis 帮你构建的仓库,打开仓库旁边的开关。一旦激活了一个仓库,Travis

【EasyCi】持续集成交付,一键式自动化部署系统,开箱即用

大憨熊 提交于 2019-12-01 19:29:12
前言   本人是一家互联网公司的java开发,由于公司初期公司未招运维人员,恰好我对linux比较熟悉,便在公司服务器搭建了一套Jenkins、Gitlab、Maven私服、Docker私服、Sonarqube、ELK、FastDFS等一套持续集成的运维环境。   后来发现,运维这块以后也归我管了……平时做系统开发,还要兼职运维,一些前端或者后端的发布都要找我来创建Jenkins 项目、添加gitlab hook、添加dockerfile文件等等。   所以就想自己写一套简单的持续化集成发布的系统。便有了接下来的EasyCi。   EasyCi系统开发的目的是免去远程发布的免密登陆、拉取gitlab代码的认证、手动添加gitlab hook、查看gitlab中该项目的git地址等等多余的操作。这些操作均有后台自动完成,系统提供运行环境一键安装脚本、自动化安装部署本系统、开箱即用,只需要几个参数即可实现项目的远程构建,暂时只支持vue和java项目的构建。   Easyci系统采用B/S架构,后端采用springboot框架、前端采用Vue的element ui、数据库采用mysql、运行工具为shell脚本、采用websocket进行实时日志传输。   由于系统由本人独立开发,对前端开发不是很擅长,页面比较简单,只为实现基本功能,后续会对功能和页面进行优化。 系统架构

fir.im Weekly

天涯浪子 提交于 2019-12-01 18:38:02
今年的 Google I/O 大会上,人工智能和虚拟现实的产品发布让我们对未来多了几分惊喜。对于开发者部分,Google 发布了 Android N 系统,感受最深的是全新的 Android Studio 、 Firebase ,赋予开发者更大的发挥空间。 再来看看本期 fir.im Weekly ,一如往常精选了一些实用的技术干货分享~ 『 iOS,Android 开发干货分享』 干货搜索器 Gank Alfred Workflow @五道口宅男潇涧 自制的干货搜索器 Gank Alfred Workflow,更好地搜索你想要的干货!远离百度就靠它!项目地址: 网页链接 . 从零开始的 Android 新项目 试想一下,如果没有历史负担,没有KPI压力,去新搭建一个项目,你会怎么设计和实现呢? 作者 宅一番markzhai 在 Blog 里更新的一系列文章,不是教你怎么从0开始学Android,从0开始怎么建一个项目,而是定位于零负担的情况下,在2016年怎么去创建一个好的 Android 项目,其中一部分技术并不太适合刚入门的初学者。目前更新至5篇,推荐Android 开发者参考下。 从零开始的Android新项目1 - 架构搭建篇 从零开始的Android新项目2 - Gradle篇 从零开始的Android新项目3 - MVPVM in Action,

Jenkins介绍

主宰稳场 提交于 2019-12-01 16:38:41
持续集成: 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。 一、引入持续集成测试: 当前软件开发过程存在的问题 在没有应用持续集成之前,传统的开发模式是这样的: 项目一开始是先划分好模块,分配模块给相应的开发人员; 开发人员开发好一个模块就进行单元测试; 等所有的模块都开发完成之后,由项目经理对所有代码进行集成; 集成后的项目由项目经理部署到测试服务器上,被交由测试人员进行集成测试; 测试过程中出现 Bug 就提把问题记录进行 Bug 列表中; 项目经理分配 Bug 给相应的责任人进行修改; 修改完成后,项目经理再次对项目进行集成,并部署到测试服务器上; 测试人员在下一次的集成测试中进行回归测试; 通过通过之后就部署到生产环境中; 如果测试不通过,则重复上述“ 分配 Bug -> 修改 Bug -> 集成代码 -> 部署到测试服务器上 -> 集成测试”工作。 这个过程中可能会出现如下问题: 1. Bug 总是在最后才发现 随着软件技术的发展,软件规模也在扩大,软件需求越来越复杂,软件已经不能简单地通过划分模块的方式来开发,往往需要在项目内部互相合作,模块之间存在一定的依赖关系,那么早期就存在的 Bug

持续集成、交付、部署

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-01 10:42:00
持续集成(Continuous integrationI) 是一种软件工程流程,是将所有软件工程师对于软件的工作副本持续集成到共享主线(mainline)的一种举措。 目的就是让产品可以快速迭代,同时还能保持高质量。 核心措施是代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。 持续交付 (Continuous delivery) 频繁地将软件的新版本,交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。 可以看作是持续集成的下一步,它强调的是不管版本怎么更新,软件是随时随地可以交付的。 持续部署(continuous deployment) 是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。 目标是代码在任何时刻都是可部署的,可以进入生产阶段。 前提是能自动化完成测试、构建、部署等步骤。 来源: https://www.cnblogs.com/tongyishu/p/11682104.html

为 Jenkins 配置 .NET 持续集成环境

↘锁芯ラ 提交于 2019-12-01 09:22:41
去年年底,得益于公司引入 Jenkins,让我们在持续集成方面迈出了第一步,本文不赘述如何安装 Jenkins,主要关注点在于配置 .Net 环境。另外本文是在 Windows 环境下安装的 Jenkins 进行操作。 一、安装环境 首先我们需要先准备几个安装包,将它们安装到 Windows 上: .NET Framework 4.6.1 https://www.microsoft.com/zh-cn/download/details.aspx?id=49982 Microsoft Build Tools 2015 https://www.microsoft.com/zh-CN/download/details.aspx?id=48159 .NET Framework 4.6.1 Developer Pack https://www.microsoft.com/zh-CN/download/details.aspx?id=49978 NuGet x86 Commandline https://dist.nuget.org/index.html 第一个当然是大家熟悉的 .NET Framework 运行环境了; 第二是 MSBuild,虽然平时我们使用 Visual Studio 都是图形界面编译、发布程序,但实际上 Visual Studio 是去调用 MSBuild

持续集成软件jenkins 安装

我只是一个虾纸丫 提交于 2019-12-01 07:55:40
安装说明 安装准备 1、若是长期稳定运行,需要使用TLS(Long-Term Support)版本 2、JDK 1.7.X 3、下载地址: a) 通用war包 http://ftp.tsukuba.wide.ad.jp/software/jenkins/war-stable/2.19.1/jenkins.war b) 基于CentOS的rpm包 http://pkg.jenkins-ci.org/redhat/ http://ftp.tsukuba.wide.ad.jp/software/jenkins/redhat/jenkins-2.9-1.1.noarch.rpm 4、插件列表地址 https://wiki.jenkins-ci.org/display/JENKINS/Plugins 5、需要安装的插件 a) 自定义邮件: Email Extension Plugin   b) sonar支持 Sonar Plugin c) 远程登录+文件推送+执行脚本支持 Publish Over SSH Plugin d) Subversion SVN plugin e) 远程登录执行脚本支持 Deploy plugin f) docker支持 Docker build step plugin CloudBees Docker Build and Publish plugin (可选)

持续集成(CI):API自动化+Jenkins定时构建

好久不见. 提交于 2019-12-01 07:18:24
1.设置接收测试报告的邮箱 系统管理>>系统设置>>配置Extended E-mail Notification      邮件标题即正文代码:   邮件标题: 自动化测试项目:$PROJECT_NAME - 构建结果:$BUILD_STATUS   邮件正文: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title> </head> <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0"> <table width="95%" cellpadding="0" cellspacing="0" style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif"> <tr> 本邮件由系统自动发出,无需回复!<br/> 各位领导及同事们,大家好,以下为${PROJECT_NAME }项目构建信息</br> <td><font color="#CC0000">构建结果 - ${BUILD_STATUS}</font></td> </tr>

持续集成与容器管理

只愿长相守 提交于 2019-12-01 04:56:45
*微服务部署   #两种方式     #手动部署     #maven部署 *持续集成   #Continuous integration ,简称CI   #检查集成错误,减小软件发布时的压力 * Jenkins   #实现持续集成的一种软件 *Gogs   #是一款极易搭建的自助 Git 服务 * Rancher   #Rancher是一个开源的企业级全栈化容器部署及管理平台 *influxDB   #是一个分布式时间序列数据库     #提供除实时数据外的时序数据 * cAdvisor   #用来监控Docker容器 * Grafana   #是一个可视化面板(Dashboard)     #用来提供操作以上软件的GUI 来源: https://www.cnblogs.com/counter-biao/p/11656284.html