我用git、s3和aws-codedeploy运行Jenkins。用于通过s3部署构建应用程序,并触发aws codedeploy用于后期部署过程。上面的设置运行得很好。
每当我运行jenkins job,我的工作总是克隆git repo,然后将构建/内容的压缩文件上传到s3,然后在我的服务器上使用aws- clone部署完整的压缩文件。
但我希望当我运行jenkin作业时,它是只复制特定的git版本,而不是完整的内容,并且只使用它来构建部署。
在上面的问题上,请帮我解决。先谢谢你...
发布于 2016-04-22 21:50:10
由于git将任何分支视为提交的指针,因此您可以指定commit in branch说明符。
分支编辑(reply to Comment):分支()实际上只是一个指向特定提交的指针。Git没有像svn这样的分支;因此,如果您想部署特定的提交,只需提供它。
我知道你不想在每次需要构建它的时候都切换到job。您可以将build设置为parametrized,然后设置为use the parameter as branch specifier。
发布于 2016-04-22 20:49:18
在Pre Steps中,将此脚本添加到Execute shell下
# 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>发布于 2017-09-29 19:59:16
我正在使用Jenkins Pipeline。
我可以部署旧的提交(任何旧的提交),只需在部署之前在gitlab docker镜像中运行checkout:
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镜像进行构建和部署。
示例:
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")。
附注:天哪,我希望你能理解我写的东西,因为我的英语很差=)
祝好运
https://stackoverflow.com/questions/36793734
复制相似问题