今天看啥  ›  专栏  ›  繁花似锦之流年似水

Jenkins使用【centos】【一】

繁花似锦之流年似水  · 简书  ·  · 2019-07-13 09:22

Jenkins是一个持续集成工具,本文中将介绍它的基本使用方法

1、centos上安装Jenkins

参考:https://www.cnblogs.com/loveyouyou616/p/8714544.html

2、配置git

首先登录Jenkins新建项目

输入项目名称,一般选择项目类型为自由风格型

点击确认后可以看到如下页面

源码管理就是用来下载代码

上图中有两个常见的代码管理方式,一个是git,一个是SVN。都是常见的代码版本管理工具。因为我们代码是放在GitHub上面,所以我们选择配置git来进行源码管理。

进入GitHub复制仓库地址

配置仓库URL

【注】Jenkins会自动检查URL连接是否正常

下面的Credentials即证书,用来设置登录凭证,可以是用户名密码、配置的密钥等

Branch Specifier (blank for 'any')默认是主分支,如果构建其他分支需自行添加

Additional Behaviours:添加一些常用配置信息

重点介绍一下用来设置git下载代码超时的配置项,我们第一次构建的时候由于代码库代码较多所以会超时报失败,默认超时时间是10min,需要配置下面的超时时间

配置好之后保存退出

点立即构建触发,此时即开始下载我们配置的代码

查看构建日志

日志详解

10

第一次构建会自动创建本地仓库目录,用来存放拉取的远程代码

git init /var/lib/jenkins/workspace/test_download_code_from_git # timeout=10  本地仓库初始化

git --version 查询git版本

git fetch --tags --progresshttps://github.com/wuwang1234/JFY.git+refs/heads/*:refs/remotes/origin/会抓取远程库所有代码。fetch命令要求refspec来获得抓取的范围。因为我们没有输入,那么git使用.git/config文件中的remote.<rep. alias>.fetch属性的值,一般是+refs/heads/:refs/remotes/origin/。那么这个ref表示抓取远程库上所有的以ref/heads/开头的引用,映射到本地的refs/remotes/origin开头的引用。以其中的master为例refs/heads/master:refs/remotes/origin/master,那么抓取的时候会把远程库上的refs/heads/master(记住远程库上的.git库同样和本地都有refs/heads/master文件)对应的SHA1值同步到本地仓库的refs/remotes/origin/master的文件中,并把其中差异的git对象(本地是a/b/c提交,而远程是a/b/c/d/e提交,那么差异的提交就是d/e和对应的git对象)从远程库下载到本地的对象库(.git/objects目录)。如果有多个分支(maste、develop、feature1)会循环执行同步SHA1和下载git对象内容

第二次构建

git rev-parse --is-inside-work-tree 查看当前目录是不是一个git仓库

git config remote.origin.urlhttps://github.com/wuwang1234/JFY.git# timeout=10 配置远程库的URL

git rev-parse用于查看参数,返回结果通常可以直接使用不需额外处理

git config用于配置、查看参数,绕过了git remote命令可能存在的报错

git fetch用于拉取分支,并不改变当前工作区内容,相比git pull更加精确有效

git checkout用于检出提交,但对于缓存区文件(也许上次集成生成的问题)以及.gitignore中配置的文件不做处理

git clean用于清理工作区,仅留下指定提交下面关联的文件

git merge --no-edit --strategy=octopus用于合并多个分支,--no-edit参数使得CommitMessage不需要编辑,octopus是默认的Merge策略,在遇到复杂合并操作,需要人工解决时,拒绝合并

git ls-remote用于查看远程代码仓库上主干分支的位置

git rev-list用于查看某次提交之前的历史

git merge --no-ff 用于合并代码。根据健康的Git工作流,所有的开发提交合并至主干时都是fast-forward过程。--no-ff参数能使fast-forward也产生一个新的Merge Commit(无此参数则不会),目的是保持开发分支的开发记录,保持整个代码开发历史的完整性

git tag用于新建Tag,保存线上稳定版本

git push origin HEAD:refs/heads/master --tags用于提交Merge后的代码及Tag。使用origin/master拉取代码,并使用HEAD:refs/heads/master方式提交,相比切换至本地master分支再更新、合并、提交,步骤更简单,并绕过本地master分支可能存在的需要处理的变更




原文地址:访问原文地址
快照地址: 访问文章快照