首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Jenkins中签出具有特定修订的git repo

如何在Jenkins中签出具有特定修订的git repo
EN

Stack Overflow用户
提问于 2016-04-22 20:21:17
回答 4查看 18.4K关注 0票数 2

我用git、s3和aws-codedeploy运行Jenkins。用于通过s3部署构建应用程序,并触发aws codedeploy用于后期部署过程。上面的设置运行得很好。

每当我运行jenkins job,我的工作总是克隆git repo,然后将构建/内容的压缩文件上传到s3,然后在我的服务器上使用aws- clone部署完整的压缩文件。

但我希望当我运行jenkin作业时,它是只复制特定的git版本,而不是完整的内容,并且只使用它来构建部署。

在上面的问题上,请帮我解决。先谢谢你...

EN

回答 4

Stack Overflow用户

发布于 2016-04-22 21:50:10

由于git将任何分支视为提交的指针,因此您可以指定commit in branch说明符。

分支编辑(reply to Comment):分支()实际上只是一个指向特定提交的指针。Git没有像svn这样的分支;因此,如果您想部署特定的提交,只需提供它。

我知道你不想在每次需要构建它的时候都切换到job。您可以将build设置为parametrized,然后设置为use the parameter as branch specifier

票数 8
EN

Stack Overflow用户

发布于 2016-04-22 20:49:18

Pre Steps中,将此脚本添加到Execute shell

代码语言:javascript
复制
# update the local git repository
git fetch 

# pull the desired branch
git pull origin <branch>

# checkout the specific commit you want.
git checkout <commit version>
票数 1
EN

Stack Overflow用户

发布于 2017-09-29 19:59:16

我正在使用Jenkins Pipeline

我可以部署旧的提交(任何旧的提交),只需在部署之前在gitlab docker镜像中运行checkout:

代码语言:javascript
复制
node {
stage('checkout') {
    checkout scm
}

docker.image('docker.io/gitlab/gitlab-ce').inside('-u root -e MAVEN_OPTS="-Duser.home=./"') {
    stage('git checkout') {
        sh 'git checkout ${REV_VER}'
        }
}

在此之后,我使用任何其他docker镜像进行构建和部署。

示例:

代码语言:javascript
复制
docker.image('openjdk:8').inside('-u root -e MAVEN_OPTS="-Duser.home=./"') {
        stage('build') {
            build process*
        }
        stage('deploy') {
            deploy process*
        }
}

REV_VER,这是Jenkins配置中的字符串参数。

默认变量- REV_VER (在Jenkins配置中)- Develop (我的工作分支)。

但是,如果您需要部署任何旧提交,只需在运行"Build with Parametrs“时,在字符串REV_VER中更改短ID提交时的变量(如"5221e28")。

附注:天哪,我希望你能理解我写的东西,因为我的英语很差=)

祝好运

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36793734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档