Gogs + Drone 实现CI/CD(CD)】的更多相关文章

Gogs 是由 Go 语言编写的 Git 服务器,由中国人主导开发的一款开源项目,搭建方便并且拥有完善的中文文档,配合 Drone 可以实现持续集成/持续部署.本文介绍如何通过 Docker 搭建 Gogs+Drone 环境. 环境 MacOS Docker && docker-compose 部署 1. 创建目录(不是必须的,可以放在任何目录里面) mkdir cicd cd cicd mkdir gogs drone # 存放相关数据 2. 编写 docker-compose.yaml…
前文已经实现CI部分,本文继续以Asp.Net Core实现CD部分. 创建gogs仓库 首先在gogs创建一个空项目drone-ci-demo,本地新建一个asp.net core项目,并且在与.csproj同级目录中创建Dockerfile,Dockerfile内容如下: FROM microsoft/dotnet:2.2-aspnetcore-runtime WORKDIR /app COPY . . EXPOSE ENTRYPOINT ["dotnet","drone…
本文通过docker-compose方式安装运行drone,先将drone的server和agent镜像拉取到本地,这样docker-compose脚本执行速度会快一点.当然,不是必须先拉取drone镜像,完全可以直接用docker-compose执行编写好的脚本. 拉取drone镜像 sudo docker pull drone/drone:1.0.0-rc.5 sudo docker pull drone/agent:1.0.0-rc.5 安装docker-compose,已安装的话可跳过.…
请移步 基于Gogs+Drone搭建的私有CI/CD平台…
什么是CI/CD 持续集成(Continous Intergration,CI)是一种软件开发实践,即团队开发成员经常集成它们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成.每次集成都需要通过自动化的编译.发布.自动化回归测试来验证,从而尽快地发现集成错误.而这些自动化的操作则由CI软件进行执行. 持续部署(Continous Delivery,CD)在持续集成的基础上,将集成后的代码部署到真实运行环境中(本文指部署到kubernetes集群).交付团队 ->版本控制 -…
上图三位大家应该很熟悉吧,借助这三者可以让我们的服务在Linux环境下持续集成.容器中持续部署. 本篇博客的项目是core webapi, .NET 5.0 在11号已经正式发布了,你们的项目都升级了吗? 在开始之前,所需要的的环境要提前准备一下 Centos7.x(连Linux系统都没有还整啥?) jdk1.8(Jenkins和Docker的运行都需要依赖jdk) Docker(项目最终运行于容器中) jenkins(这个是CI.CD的关键) dotnet core环境(编译我们的项目)git…
本篇教程主要讲解基于容器服务搭建TeamCity服务,并且完成内部项目的CI流程配置.教程中也分享了一个简单的CI.CD流程,仅作探讨.不过由于篇幅有限,完整的DevOps,我们后续独立探讨. 为了降低容器的使用门槛以及便于大家将容器技术应用于开发和实践,当前教程大部分线上实践结合TKE(腾讯云容器服务)来进行讲解和实践.当本系列内容讲解完成后,笔者将再单独讲解Kubernetes(k8s). 最后,长沙技术社区第一次线下交流会将在2019年3月10日下午2点开始,有兴趣的朋友可以参与交流.名额…
博客搬迁至https://blog.wangjiegulu.com RSS订阅:https://blog.wangjiegulu.com/feed.xml 原文链接:https://blog.wangjiegulu.com/2018/09/10/understanding-the-difference-between-ci-and-cd/ 理解 CI 和 CD 之间的区别 原文:https://thenewstack.io/understanding-the-difference-between…
阿里巴巴CI:CD之分层自动化实践之路 2018-05-30 摘自:阿里巴巴CI:CD之分层自动化实践之路 目录 1 自动化  1.1 为什么要做自动化?  1.2 自动化的烦恼  1.3 自动化的追求2 分层自动化3 阿里分层自动化的实践  3.1 首先,分层自动化工具革命  3.2 其次,项目流程革命 6月29日,由阿里云研发协同RDC.阿里云云效和云栖社区联合举办的“首届阿里巴巴研发效能嘉年华”上,阿里巴巴高级产品经理金桐带来“分层自动化实践之路”的演讲.本文从为什么要做自动化开始谈起,进…
传统的开发方式是:需求方提供文档,实现方按照文档一步步开发,中间很少变动和修改. 但是随着市场的变化,产品更新迭代的加快,也要求开放方更快的响应变化,用最短的时间开发,部署上线. 这样,持续集成(CI coutinuous integration),持续部署(continuous delivery)的概念应运而生. CI/CD: 让我们看一下常规项目的上线流程: 实现了CI/CD的项目,上线流程是 可以看到,除了开发与提交代码,通过jeckins等程序,省去了后面的打包,部署等一系列操作. 这还…
openstack中CI和CD的意思: 持续集成(CI)和持续交付(CD)…
Jenkins近阶段使用的总结篇,只写了个引子,却一直未动手写完,今天补上. 前几篇文章提到在内网jenkins直接构建部署升级线上环境,job都是暴露在外面,很容易被误操作,需要做简单的权限控制,以防止误操作,导致生产环境挂掉.但jenkins本身是缺少权限控制的功能的,这里需要借助第三方插件Role Strategy Plugin完成.具体使用细节可以翻阅网络上的相关资料. 回顾下之前的几个章节: 1.利用jenkins实现自动构建.部署,提升团队开发效率 2.Jenkins构建部署后,服务…
在软件的编译发布的过程中,经常能够看到CI.CD这样的词语.其实他们是专业的缩写短语,这里介绍下他们的概念和区别. 敏捷软件开发 敏捷软件开发,英文全称:Agile software development,是从1990年代开始逐渐引起广泛关注的新型软件开发方式,是一种应对快速变化的需求的一种软件开发能力.它们的具体名称.理念.过程.术语都不尽相同,相对于“非敏捷”,更强调程序员团队与业务专家之间的紧密协作.面对面的沟通(认为比书面的文档更有效).频繁交付新的软件版本.紧凑而自我组织型的团队.能…
本章节通过在Jenkins创建一个kubernetes云环境,动态的在kubernetes集群中创建pod完成pipeline的构建流程,关于直接在宿主机上搭建Jenkins集群的可参照Kubernetes CI/CD(1) 部署Jenkins 下载Jenkins对应的镜像 docker pull jenkins/jenkins:2.221 将jenkins镜像上传到自己的私有镜像仓库中 docker tag jenkins/jenkins:2.221 192.168.0.107/k8s/jen…
CI / CD /CD 持续集成 持续交付 持续部署 CI CD 是啥?干了啥? CI continuous integration 持续集成 CD continuous delivery 持续交付 CD continuous deploy 持续部署 他们干了点啥 代码自动building 测试环境和项目的自动部署 生产环境和项目的自动部署 恩恩 都是这些 和 管理工作 ** 因为是自动化的 可以在你合并代码后几分钟就开始测试 ** 流程: 用户提交代码到仓库 ->合并代码 -> 自动编译代码…
一.CI,CD,Jenkins的介绍 CI:持续集成(Continuous integration,简称 CI),在传统的软件开发环境中,有集成,但是没有持续集成这种说法,长时间的分支与主干脱离,导致分支与主干可能存在较大偏差,在集成代码的时候可能需要花费数小时更久的时间来修复代码,以便最终将代码集成主干(俗称"集成地狱"或"集成灾难"):而CI旨在鼓励团队成员进行频繁集成(例如每小时或至少每天一次)来避免这种情况的出现,通过自动检测.拉取.构建和(在大多数情况下)…
据IDC统计,2017年,DevOps的全球软件市场已达到约39亿美元的水平,预计到2022年市场将达到80亿美元左右! 在敏捷软件开发环境中,工作模型和操作需要对公司不断变化的需求具有超级灵活的能力.DevOps——一种工具和实践的结合,有助于软件开发与IT运维并携手共进.这种跨功能的工作模式旨在最小化系统开发生命周期的持续时间,并提供持续的部署和交付. 实施CI和CD的方式 你可能有很多想法,你的产品创意可能是最好的,但如果你不经常交付新版本,那么你将很难与周边的竞争对手匹敌.持续集成(CI…
前言: 随着企业应用的不断迭代,不断扩大,应用的发布发布可能涉及多个团队,如pc端,手机端,小程序端等等.应用发布也就成为了一项高风险,高压力的超过过程,以及应用的开发迭代的沟通,测试成本也大大的变得不可控了.这时候就出现了DevOps管理理念,CI,CD以及强大的部署自动化手段确保部署任务的可重复性.减少部署出错的可能性.下面简单的描述一下这四者的基本概念. DevOps 什么是DevOps? DevOps(Development和Operations的组合词)是一组过程.方法与系统的统称,用…
关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ DevOps DevOps是Development和Operations的组合,是一种方法论,是一组过程.方法与系统的统称,用于促进应用开发.应用运维和质量保障(QA)部门之间的沟通.协作与整合.以期打破传统开发和运营之间的壁垒和鸿沟. DevOps是一种重视"软件开发人员(Dev)"和"IT运维技术人员(Ops)"之间沟通合作的文化.运动或惯例.通过自动化&q…
Gogs是基于Go语言编写的可以替代gitlab的代码托管平台,它没有gitlab那么庞大且不需要占用大量资源,对小型服务器相对于比较友好,我们甚至可以使用树莓派搭建. 服务器配置: * 操作系统:CentOS 7.6 64bit * 服务器规格:CPU[1核] 内存[2GB] * 磁盘:系统盘60GB 安装过程(一):docker环境准备 1. 安装docker,准备部署环境(先清除有关docker 的所有文件) sudo yum remove docker \ docker-client \…
使用gogs,drone搭建自动部署 使用gogs,drone,docker搭建自动部署测试环境 Gogs是一个使用go语言开发的自助git服务,支持所有平台Docker是使用go开发的开源容器引擎Drone是一个基于容器技术的持续集成平台.每个构建都在一个临时的Docker容器中执行,使开发人员能够完全控制其构建环境并保证隔离.drone易于安装和使用,其目标是替代jenkins 本文所实现的的功能为当你push代码到gogs时,自动更新您测试环境的二进制文件并重启,实现自动部署(以go开发a…
1.CI:持续集成(CONTINUOUS INTEGRATION) 基本概念 CI的全称是Continuous Integration,表示持续集成. 在CI环境中,开发人员将会频繁地向主干提交代码.这些新提交的代码在最终合并到主干前,需要经过编译和自动化测试流进行验证. 持续集成过程中很重视自动化测试验证结果,以保障所有的提交在合并主线之后的质量问题,对可能出现的一些问题进行预警.需要具备的条件 团队需要为每个新功能.代码改进.或者问题修复创建自动化测试用例. 你需要一个持续集成服务器,它可以…
Continuous Integration (CI) / Continuous Delivery (CD)…
Continuous Integration (CI) Continuous integration (CI) is the process that ensures the stability of all the available developer source code. All working copies of source code are merged into the trunk/main line (instead of a main branch, this can be…
CI:持续集成(CONTINUOUS INTEGRATION)基本概念CI的全称是Continuous Integration,表示持续集成. 在CI环境中,开发人员将会频繁地向主干提交代码.这些新提交的代码在最终合并到主干前,需要经过编译和自动化测试流进行验证. 持续集成过程中很重视自动化测试验证结果,以保障所有的提交在合并主线之后的质量问题,对可能出现的一些问题进行预警. 需要具备的条件团队需要为每个新功能.代码改进.或者问题修复创建自动化测试用例.你需要一个持续集成服务器,它可以监控代码提…
本文通过在kubernetes上启动Jenkins服务,并将宿主机上的docker.docker.sock挂载到Jenkins容器中,实现在Jenkins容器中直接打镜像的形式实现CI功能. Kubernetes 集群的安装请参考kubernetes安装 部署Jenkins 下载Jenkins对应的镜像 docker pull jenkins/jenkins:2.221 将jenkins镜像上传到自己的私有镜像仓库中 docker tag jenkins/jenkins:2.221 192.16…
有很多关于持续集成(CI)和持续交付(CD)的资料.很多文章用技术术语来进行解释,以及它们怎么帮助你的组织.可惜的是,在一些情况下,这些方法通常与特定工具.甚至供应商相关联.在公司食堂里非常常见的谈话可能是: 你在你们团队里面使用持续集成吗? 当然,我们使用 X 工具 让我来告诉你一些秘密.持续集成和持续交付都是开发方法.它们没有链接到特定的工具或者供应商.尽管有DO(比如Codefresh)这样的工具和解决方法在这两方面帮助你,实际上,一个公司可以只使用 Bash 脚本和 Perl one-l…
Jenkins入门(一) https://blog.csdn.net/miss1181248983/article/details/82840006…
在上图这个新建的docker-compose.yml文件中把刚才的代码粘贴进去. 可把上述文件保存后,然后到/etc/ssh/sshd_config文件中更改下对应的端口号即可. 然后重新启动sshd服务. 上图docker-compose up -d第一次运行的话,会花很长的时间下载东西,大概会下载1G多的东西,所以可以等一会儿.并且它启动的速度也是比较慢的. 此处可以用logs来看一下. 等它启动成功,再去访问它的80端口.…
使用gogs,drone,docker搭建自动部署测试环境 Gogs是一个使用go语言开发的自助git服务,支持所有平台 Docker是使用go开发的开源容器引擎 Drone是一个基于容器技术的持续集成平台.每个构建都在一个临时的Docker容器中执行,使开发人员能够完全控制其构建环境并保证隔离.drone易于安装和使用,其目标是替代jenkins 本文所实现的的功能为当你push代码到gogs时,自动更新您测试环境的二进制文件并重启,实现自动部署(以go开发api服务为例,测试环境为ubunt…