git和jenkins自动化代码上线

[亡魂溺海] 提交于 2020-01-03 21:21:45

1. 介绍

什么是持续集成?

经常频繁的代码合并, 持续集成跟运维有关的工作,提供一个代码仓库,版本控制系统(备份,迁移)

什么是持续交付?

开发团队---测试团队---运维上线
开发团对,单元测试,---测试-- 代码质量检测--- 测试, sonarqube

什么是持续部署?

频繁的代码上线,持续部署

2. 持续集成

什么是版本控制系统

每一次提交或修改都看作是一个版本

版本控制系统解决了什么问题?

快速回滚到指定的版本,只保留变化的内容

常见版本控制系统svn与git区别?

svn:  中心化的代码仓库
git:    分布式的代码仓库

安装和配置git

#git的安装
yum install git -y
git --version
​
git config --global user.name "xxxx"
git config --global user.email "xxxx@qq.com"
git config --global color.ui   "true"

创建版本库

mkdir test
cd test
git init  

git仓库添加文件

git  add   .    #添加文件到缓冲区
git  commit  -m   'add three file'

git修改文件名称并提交

git  mv  file1  file4
git commit -m 'change file name'

git的文件对比

git diff  file3  #本地目录和缓冲区文件对比
git diff --cached  file3   #缓冲区文件和仓库文件对比

实现回退功能

查看当前的历史版本
git log --oneline   
git reset --hard 942bdf3
​
查看所有的历史版本
git reflog --oneline
git reset --hard 942bdf3
撤销修改的文件

提交到缓冲的区文件撤回
git reset HEAD file3(文件名)
git checkout -- file3(文件名)
​
未add到缓冲区的文件撤回
git checkout -- file3(文件名)

git分支管理

#增加一个新分支
git branch dev01
#切换分支
git checkout  dev01
​
#在开发分支上合并主分支
git merge master  -m '注释'#切回主分支
git checkout  master
#在主分支合并开发
git merge dev01  -m '注释'

git标签管理

#查看当前标签
git tag

#给当前版本打标签
git tag v1.2 
​
#删除标签
git  tag  -d  v1.2
​
#给任意版本打标签
git tag  -a v1.0  -m  '优化了1111  修复bug'  a119962 

git远程仓库gitee

#从远程仓库克隆到本地
git clone git@gitee.com:yu_hong_lei/linux63.git

#讲本地推到远程
git  push  origin  master

#远程更新到本地
git  pull  origin  master

gitlab仓库搭建

`安装`
#上传gitlab-ce-11.9.11-ce.0.el7.x86_64.rpm到当前目录
yum localinstall gitlab-ce-11.9.11-ce.0.el7.x86_64.rpm -y

vim  /etc/gitlab/gitlab.rb
#设置访问url和关闭prometheus
external_url 'http://10.0.0.100'
prometheus_monitoring['enable'] = false
#配置gitlab通过smtp发送邮件
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'xxxxxx@qq.com'
gitlab_rails['gitlab_email_display_name'] = 'gitlab'
​
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "xxxxxx@qq.com"
gitlab_rails['smtp_password'] = "xxxxxx"
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true

#初始化​
gitlab-ctl  reconfigure

`gitlab汉化`
#下载汉化包https://gitlab.com/xhang/gitlab
tar xf gitlab-11-9-stable-zh.tar.gz 
gitlab-ctl stop
\cp -a gitlab-11-9-stable-zh/* /opt/gitlab/embedded/service/gitlab-rails/
gitlab-ctl start

`gitlab备份和恢复`
#备份
gitlab-rake gitlab:backup:create
#恢复
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab-rake gitlab:backup:restore BACKUP=1510472027_2017_11_12_9.4.5 
gitlab-ctl start unicorn
gitlab-ctl start sidekiq
​#备份路径
vim /etc/gitlab/gitlab.rb
gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup_keep_time'] = 604800
#迁移云主机
先备份,云主机安装相同版本,恢复
 
`gitlab版本升级`
gitlab升级,  10-->11-->12
gitlab升级不能跨大版本

上传需要升级的rpm包
yum localinstall -y gitlab-ce-12.3.6-ce.0.el7.x86_64.rpm
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!