GitLab+Jenkins结合构建持续集成(CI)环境

持续集成概述

  • 持续集成概述:持续集成(continuous integration)持续集成是指开发者在代码的开发过程中,可以频繁的代码部署集成到主干,并进行自动化测试。
  • 持续交付:持续交付指的是在持续集成的环境基础之上,将代码部署到预生产环境。
  • 持续部署:在持续交付的基础上,把部署到生产环境的过程自动化。

版本控制系统概述

什么是版本控制系统

版本控制系统(Version Control System):

是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。

版本控制系统不仅可以应用于软件源代码的文本文件,而且可以对任何类型的文件进行版本控制。

版本控制解决了那些问题:

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

版本控制系统SVN于Git的区别

  1. git是分布式的,SVN是集中式的

    开发人员可以建立自己的分支,并在自己的分支上进行操作,减少了冲突

  2. git可以在没有网络的情况下使用

    从远程库clone一个到本地库,没有网络的情况下,可以将修改提交到本地库,等有网的时候在传上去。

  3. git和SVN的版本控制

    是通过.git和.svn文件,.git只是在本地的版本库的目录下存在,而.svn存在于每一个文件夹,当我们不需要版本控制的时候,要删除.svn很费时。

  4. 版本号问题

    svn有明确的版本号,git对于每一个版本,都通过SHA1算法生成一个唯一标示的码,方便追溯到之前的版本。

git使用

git简介

官网地址:https://git-scm.com/

菜鸟教程:https://www.runoob.com/git/git-workflow.html

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

git基本概念

我们先来理解Git工作区、暂存区和版本库概念

  • 工作区:就是你在电脑里能看到的目录。
  • 暂存区:英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
  • 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

安装和配置Git

#git安装
yum install git -y
git --version

#配置个人的用户名称和电子邮件地址:
git config --global user.name "魏"
git config --global user.email "[email protected]"
git config --global color.ui   "true"

如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。

如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。

查看配置信息

git config --list
user.name=吉祥
user.email=1354586675@qq.com
color.ui=true

#或
cat /root/.gitconfig
[user]
    name = 吉祥
    email = 1354586675@qq.com
[color]
    ui = true

创建版本库

#使用当前目录作为Git仓库,该命令执行完后会在当前目录生成一个 .git 目录。,
mkdir /opt/class
cd /opt/class
git init

#或者指定目录作为git仓库
git init  /opt/class/
Initialized empty Git repository in /opt/class/.git/

git仓库添加文件

#添加文件到缓存区
git add .
git commit -m ‘add three file‘
  • 实验
#创建5个文件并写写入各自的文件数字
for n in 1 2 3 4 5;do echo $n >$n.txt ;done

#查看文件状态,未提交缓存区
git status

#提交完查看文件状态
git add .
git status

#提交到git仓库
git comiit -m ‘add three file‘

git修改文件名称并提交

#目录和缓存区之间的变化
git mv 5.txt 6.txt
git status
git commit -m ‘change file name‘
git status

git的文件对比

#缓存区与git仓库之间的变化
vim 6.txt
5
6

git diff 6.txt  #本地目录和缓冲区文件对比
git diff --cached 6.txt  #缓冲区文件和仓库文件对比
git add .

git diff --cached 6.txt
git diff 6.txt
git commit -m ‘add ontline 6.txt‘
git status

实现回退功能

#查看当前的历史版本
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 v1.2 

#删除标签
git  tag  -d  v1.2

#给任意版本打标签
git tag  -a v1.0  -m  ‘优化了1111  修复bug‘  a119962 

git远程仓库gitee

码云地址:https://gitee.com/ 一个免费的静态网页托管服务

  • 创建私有仓库
  • 创建完成:

https协议方式上传

git init
git add .
git commit -m "first commit"
git remote add origin https://gitee.com/weijixiang_god/class.git
git push -u origin master   #上传到master分支
Username for ‘https://gitee.com‘: weijixiang_god  #代码仓库名称
Password for ‘https://[email protected]gitee.com‘:  #登录密码
  • 上传结果:

ssh协议方式上传

  • 主机创建公钥,复制到码云
ssh-keygen  #一路回车
cat /root/.ssh/id_rsa.pub
#秘钥内容忽略,添加到码云

  • 免密钥推送
#创建一个新文件并上传到git仓库
echo "7" > 7.txt && git add . && git commit -m "create 7.txt" 

git remote remove origin    #删除之前上传方式问https的用户信息
git remote add origin [email protected]:weijixiang_god/class.git   #添加git方式仓库信息
git push -u origin master

上传标签

git tag 1.0  #给当前仓库打标签
git push origin master --tags  #推送标签

原文地址:https://www.cnblogs.com/Mercury-linux/p/12623343.html

时间: 2024-08-01 04:28:22

GitLab+Jenkins结合构建持续集成(CI)环境的相关文章

1.GitLab和Jenkins 结合构建持续集成(CI)环境

14.1 持续集成概述及运行流程 14.1.1 持续集成概述 持续集成概述:持续集成(Continuous integration)持续集成是指开发者在代码的开发过程中, 可以频繁的将代码部署集成到主干,并进行自动化测试. 持续交付:持续交付指的是在持续集成的环境基础之上,将代码部署到预生产环境. 持续部署:在持续交付的基础上,把部署到生产环境的过程自动化. 14.1.2 jenkins 和 Gitlab 概述 Jenkins 概述:是一个开源软件项目,是基亍 Java 开发的一种持续集成工具,

centos7下Gitlab+Jenkins部署持续集成CI环境

1.基本环境 主机:win10,IP:192.168.0.111:部署机器centos7,IP:192.168.0.65:内存推荐到8G,实测6G以上,以免出现内存不够用而报错. 2.安装gitlab需要的组件 [[email protected] ~]# yum -y install curl policycoreutils-python openssh-server openssh-clients postfix wget vim lrzsz启动邮件功能 [[email protected]

实战docker+jenkins+git构建持续集成环境

本文重点介绍jenkins以及让jenkins如何实现在docker容器中运行.jenkins和docker私有仓库又是怎么结合的.docker说明及安装和git说明及安装在本文中不会特别详细的介绍. ?并且,在本文中不着重介绍原理性的东西,比如不会介绍什么是持续集成.持续构建等等.本文的重点是实战为主.对持续集成.持续交互.持续部署不太了解的朋友可以参考这篇文章了解一下:https://www.zhihu.com/question/23444990 1.背景说明 Jenkins是一个开源软件项

gitlab+jenkins+maven+docker持续集成(十)——参数化构建过程之多环境tag构建

同一个项目,要构建到不同的环境,而且对应的分支或tag也不相同,这里就要用到jenkins的参数化构建过程 中的Git Parameter和Choice Parameter, 先看下效果 实现过程 构建过程:Git Parameter -->Name: branch_selector -->Parameter Type :Tag  (这里我选择tag) 构建过程:Choice Parameter 源码管理 这样就可以实现效果,其中我们设置的参数,都可以以变量形式传到我们需要运行的脚本里. 补充

gitlab+jenkins+maven+docker持续集成(三)——自动构建

具体原理图,如下,构建项目配置,这里略过,我们直接配置gitlab的自动构建 通过webhook可以实现自动构建,当然jenkins的强大之处在于插件,我们先安装插件 Jenkins-->插件管理 Gitlab Hook Plugin GitLab Plugin 安装后,就可以开始 了 在项目--配置--构建触发器 选择, Build when a change is pushed to GitLab 这样我们就得到了URL和一串Secret token 然后在gitlab配置webhook ,

gitlab+jenkins+maven+docker持续集成(十一)——sonarqube及sonarscanner代码审查

Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质 量.通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd.checkstyle. findbugs.Jenkins.通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程 进行代码质量管理. 同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar. 此外,Sonar 的插件还可以对

gitlab+jenkins 自动化部署 持续集成

环境: 1.centos7.6 2.jdk1.8.0_141 3.4G 30G 4core 4.关闭防火墙和selinux 一.安装jenkins 1. 下载jenkins https://pkg.jenkins.io/redhat/  jenkins-2.208-1.1.noarch.rpm 2.安装jdk和jenkins rpm包 rpm -ivh jdk-8u141-linux-x64.rpm rpm -ivh jenkins-2.208-1.1.noarch.rpm 3.启动服务及设置开

gitlab+jenkins+maven+docker持续集成(六)——.Jenkins获取git tags代码进行持续集成

GitFlow的工作流 如上图所示,在开发工作中,不同的代码分支对应着项目或产品的不同形态,围绕特定形态的人力投入也不相同.随着时间的推进, 我们在 开发分支 中合并产品的功能实现,产品的功能逐步完善. 当产品功能完善到一定阶段,可以交付给测试团队进行内部测试时,产品代码可以合并到 测试分支(注意,上图未体现测试分支,实际中是否需要测试分支需要具体而定),编译打包测试. 经过若干迭代测试,功能稳定成熟,产品可以发布,此时,代码合并到主干(master)分支,用于发布(TAG标记). 所以这里用T

gitlab与jenkins结合构建持续集成

Jenkins是java编写,需要安装JDK,这里采用 yum 安装,对版本有需求的,可以到 oracle 官网下载 JDK. yum install -y java-1.8.0-openjdk 一.安装 Jenkins 添加yum源 sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo 导入密钥 sudo rpm --import https://pkg.jenk