簡體   English   中英

如何在 Jenkins 中簽出具有特定修訂版的 git repo

[英]How to checkout git repo with an specific revision in Jenkins

我正在使用 git、s3 和 aws-codedeploy 運行 Jenkins。 用於通過 s3 部署構建應用程序,並觸發 aws codedeploy 以進行部署后過程。 以上設置運行完美。

每當我運行 jenkins 工作時,我都會遇到問題,我的工作總是克隆 git repo,然后將構建/內容的 zip 上傳到 s3,然后 aws-codedeploy 在我的服務器上部署完整的 zip。

但是我希望當我運行 jenkin 工作時,它只需要特定的 git 修訂版克隆,而不是完整的內容,並僅使用它來構建部署。

請幫我解決上述問題。 提前謝謝...

由於 git 將任何分支視為提交的指針,因此您可以在分支說明符中指定提交。

編輯(回復評論):您所說的分支實際上只是指向特定提交的指針。 Git 沒有 svn 這樣的分支; 因此,如果你想部署一個特定的提交,你只需提供它。

我知道您不想在每次需要構建它時都換工作。 您可以使構建參數化,然后將該參數用作分支說明符

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>

我正在使用Jenkins 管道

我可以部署舊提交(任何舊提交),只需在部署之前在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 Parameters”時更改字符串 REV_VER 中的短 ID 提交(如“5221e28”)上的變量

ps OMG,我希望你能理解我寫的東西,因為我的英語很糟糕=)

祝你好運

根據git插件的文檔:

注意:結帳步驟是首選的 SCM 結帳方法。 它提供了比 git 步驟更多的功能。

在上面我使用帶有憑據的checkout制作了版本:

def branchDeployName = 'd5e043c80b51067c397ae12567005efde5b2517f' //commit ID
/*or simply*/
//def branchDeployName = '*/master' //branch name
checkout([
  $class: 'GitSCM', 
  branches: [[name: branchDeployName]], 
  doGenerateSubmoduleConfigurations: false, 
  extensions: [], 
  submoduleCfg: [], 
  userRemoteConfigs: [
    [credentialsId: 'ac3a0ae1-d3aa-1111-ac70-cba42f82e760', 
     url: 'https://bitbucket.org/user/repo.git']
  ]
])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM