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分支可能存在的需要处理的变更
网友评论