在本教程中,学习如何在构建脚本中执行以下git操作。
- 在gradle构建中克隆git仓库
- git从gradle任务中拉出变化
- 创建一个git标签并提交修改到远程仓库。
有些时候,我们必须写一个构建脚本来自动完成持续集成和构建部署过程中的git任务。
这种构建脚本被配置为gradle构建周期中的依赖插件,也可以单独运行。
我们有gradle-git插件,我们可以使用gradle构建脚本来完成多个git操作。
在build.gradle脚本中,请配置以下步骤来编写任何git操作的任务
- 首先,使用buildScript下载这个插件。
- 让我们在build.gradle中配置这个插件
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'org.ajoberstar:gradle-git:1.6.0'
}
}
- 在build脚本中导入org.ajoberstar.grgit
import org.ajoberstar.grgit.*
如何在build等级中克隆git仓库
git克隆是用git clone命令完成的。
同样的事情也可以用gradle任务来完成
- 首先导入grgit类
- 创建一个gradle任务
- 在它里面,使用Grgit.clone(),用dir参数克隆到本地文件夹
- 和URI指向git仓库的网址
task cloneRepository << {
Grgit.clone(dir: file('build/localreponame'), uri: 'git@github.com:username/reponame.git')
}
同样的事情也可以从命令行运行,如下所示
gradle cloneRepository
or
gradlew cloneRepository
如何用gradle任务做git pull
task pullRepo << {
def grGit = Grgit.open(dir: project.file('.'))
grGit.pull(rebase: false)
}
同样的事情也可以用gradle或wrapper命令运行
gradlew pullRepo
(or)
gradle pullRepo
如何用gradle构建任务来创建git标签?
这将创建一个新的标签,并使用gradle build task提交修改到远程仓库。
- 首先使用
Grgit.open方法创建Grgit对象 - 使用对象添加标签,加上新的标签名称和提交信息
- 最后使用push方法推送变化
task createGitTag <<{
def grGit = Grgit.open(dir: 'location_folder')
// create a tag with new name and commt message
grGit.tag.add(name: 'release-tag-1..0', message: 'Create a new tag using gradle tag')
// push
grGit.push(tags: true)
//clean resource
grGit.close()
}
同样的事情也可以用gradle或wrapper命令运行
gradlew createGitTag
(or)
gradle createGitTag
如何在build.grade脚本中提交和推送文件变化到git远程仓库
在构建脚本中
- 首先用本地目录路径创建一个Grgit对象
- 接下来,给grGit添加模式对象,告诉它要包括文件夹或单个文件来提交
- 使用提交方法提供提交信息
- 最后,使用推送方法推送更改。
task pushtoGitRepo <<{
def grGit = Grgit.open(dir: '.')
grGit.add(patterns: ['src'])
grGit.commit(message: 'Committing final Changes')
grGit.push(force: true)
}
同样的事情也可以用gradle或wrapper命令运行。
gradlew pushtoGitRepo
(or)
gradle pushtoGitRepo
总结
你学会了如何为git commit推拉和创建分支写一个构建任务。
这有助于devops使用构建脚本来自动化git操作。