gitlab

持续交付三:动手自动化“开发”—>“测试”

情到浓时终转凉″ 提交于 2020-11-22 13:44:00
前两篇博文中提到Development,QA,Staging,Production四个环境,也说明了源代码的分支和四个环境的对应关系,本篇博文聊一下,怎么把源码自动化发布到对应的环境中。 市面上主流的DevOpt工具都支持这些功能,github,gitlab,都有CICD功能,当然,如果源码服务器是自己搭建的,也可以利用像Jenkins这类软件来实现CICD,关于这些大众工具,网上有很多教程序,这里就不主要来分享了,本例是用.net core实现一个极简的自动发布工具——《MyCICD》。 说一下实现思路吧! clone 或 pull分支代码 publish run 是不是很简单,上代码吧 using System; using System.Collections.Generic; using System.Configuration; using System.Diagnostics; using System.IO; using System.Linq; using System.Text; using System.Threading; namespace MyCICD { class Program { static void Main(string[] args) { var processIDs = new int[0]; while (true) { if

聊聊软件开发的代码审查

做~自己de王妃 提交于 2020-11-21 15:01:10
不知道你有没有遇到这样的场景,刚上线的一个功能,就出现了一个严重Bug,团队周末集体加班吭哧吭哧的紧急处理,你们彼此抱怨不断;你和老板在给客户演示产品新功能的的时候,突然系统崩溃了,在场的人一阵尴尬,急忙解释一阵说这一块还没处理好。 遇到这种问题怎么办?是每个人只负责其中一个模块么,遇到问题出现问题的人处理吗?不行,这样忙的同学会忙死,闲的同学没事儿做;那招一个测试同学呢?也不行,我们并没有招聘的预算; 其实解决这个问题就是做好代码质量管理,而代码质量管理最重要的方法就是「Code Review」也就是代码审查 ,为了简单,下文我用CR简写。 代码审查在维基百科解释: 指对计算机源代码系统化地审查,常用软件同行评审的方式进行,其目的是在找出及修正在软件开发初期未发现的错误,提升软件质量及开发者的技术。 简单来说CR就是通过审查代码来提升软件质量和开发者技巧的方式。 为什么要做 Code Review 那么为什么说CR能够提升软件质量和开发者技巧呢?以及为什么我们要做CR? 首先对于初学者,CR是一种很好的学习方式,因为负责主要审查的人往往具有更丰富的经验,知道哪些位置有坑,哪些写法会造成问题,这样可以最大限度的从代码过程中提升个人技能。 尤其是那些资深的同事给新人进行指导讲解的时候,效果可能不仅仅是知识代码层面的,更是对以后工作态度,学习求真的深远影响

Intellij IDEA使用GitLab

安稳与你 提交于 2020-11-21 07:52:02
今天单位的svn又挂了,所以今天在云上自建了一个GitLab,记录一下操作步骤 云端服务器的操作系统为centos7.4 增加yum仓库 vim /etc/yum.repos.d/gitlab-ce.repo 在新增的文件中填写以下内容: [gitlab-ce] name=Gitlab CE Repository baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/ gpgcheck=0 enabled=1 (以上为文件内容) 运行命令 yum makecache 执行安装操作 yum install gitlab-ce 安装完成后会提示external_url未配置,需要修改一个配置文件,如下: vim /etc/gitlab/gitlab.rb 在此文件中找到external_url,修改它,以我的配置为例: 把原配置文件的 external_url 'http://gitlab.example.com' 注释掉后换成了服务器IP以及再加上后缀,以后访问只需要在浏览器上输入 http://48.92.137.223:80/gitlab 就好 然后运行在完成安装时提示信息显示的一个重新配置的命令 gitlab-ctl reconfigure 稍等片刻,待配置完成之后

Git和Gitlab在使用过程中所遇到的问题

寵の児 提交于 2020-11-21 04:07:32
01-关于gitLab添加ssh key后,git clone还提示输入密码问题 本地用户连接远程仓库需要用 HTTP方式连接,SSH方式会出现提示输入密码 git clone http: // ....... 02-生成ssh公钥和私钥对 # 命令 ssh -keygen -t rsa -C ' 邮箱 ' cat ~/.ssh/ id_rsa.pub 参考文档:https: // www.cnblogs.com/hafiz/p/8146324.html 03- 配置git本地仓库的账号邮箱 git config -- global user.name ' xxx ' git config -- global user.email ' xxx@163.com ' 04-查看当前远程服务器地址 git remote -v 05-git实际案例分析 https://www.cnblogs.com/smuxiaolei/p/7484678.html 06-Git新建分支出现fatal: Not a valid object name: 'master'错误 原因是没有提交一个对象,要先commit之后才会真正建立master分支,此时才可以建立其它分支。 07-如何去解决fatal: refusing to merge unrelated histories 08-Branch 'dev

如何利用Gitlab-CI持续部署到远程机器?

纵饮孤独 提交于 2020-11-20 07:02:08
长话短说,今天聊一聊使用Gitlab-CI 自动部署到远程服务器。 如果看过《 基于docker-compose的Gitlab CI/CD实践&排坑指南 》这篇文章的朋友,会注意到我是在 Gitlab-Runner服务器上自动部署的站点,本次我们结合 ssh 部署到远程机器(将CI服务器和部署服务器分离,避免资源抢占)。 SSH免密登陆 还是那句: CI/CD实质是将我们手动集成、拷贝部署的方式脚本化 ,远程部署的重要姿势是要求 免密操控 。 受控机器上的某个账户信任 CI机器上gitlab-runner账户。 先执行 su gitlab-runner 切换到 gitlab-runner 账户 在你的CI机器(主控端)上使用 ssh-keygen命令创建公钥,使用 ssh-keygen -t rsa 来创建,程序会问你存放目录,如果不需要修改,直接回车几次即可 将~/.ssh目录下 id_rsa.pub 文件拷贝到受控机器的 ~/.ssh 目录中,然后将文件内容导入到 ~/.ssh/authorized_keys 文件 主控方: scp /home/gitlab-runner/.ssh/id_rsa.pub ****@10.202.42.252:/home/***/.ssh/ 受控方: cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

从需求出发设计一条开源持续部署流水线

夙愿已清 提交于 2020-11-17 14:34:35
本次实践从需求出发到部署,采用大部分开源工具链Jira+GitLab+Jenkins+Spinnaker. Jira作为需求和任务管理工具,集成GitLab实现需求与代码关联,自动创建特性分支和版本分支以及合并请求的创建。GitLab代码提交触发JenkinsCI流水线,这里CI指的是Jenkins来做构建、测试、扫描、生成镜像上传镜像操作。CD由Spinnaker对各个环境部署。 详细的内容在下面PPT:本此内容已经录制成视频教程,已经购买Jenkins实践课程的同学请耐心等待,预计两天内免费更新到课程中。欢迎更多的同学一起加入DevOps课程学习!目前还有优惠哦~ 该项目涉及到Jenkins共享库中的Gitlab接口,Jenkinsfile,SPinnaker Pipeline模板。仓库地址:https://github.com/zeyangli/devops-practice 欢迎点赞关注! 关于我们 泽阳,DevOps领域实践者。专注于企业级DevOps运维开发技术实践分享,主要以新Linux运维技术、DevOps技术课程为主。丰富的一线实战经验,课程追求实用性获得多数学员认可。课程内容均来源于企业应用,在这里既学习技术又能获取热门技能,欢迎您的到来!(微信ID: devopsvip) DevOps流水线实践课程 ????戳阅读原文,进入课堂 来源: oschina 链接: