2016-04-22 32 views
0

私はgit、s3、aws-codedeployでJenkinsを実行しています。デプロイメント用アプリケーションをs3経由でビルドし、デプロイ後のプロセス用にawsコード化を起動します。 上記の設定は完全に実行されています。Jenkinsの特定のリビジョンでgit repoをチェックアウトするには

私はジェンキンスジョブを実行するたびに問題が発生しています。私のジョブはいつもクローンgit repoです。その後、ビルド/コンテンツのzipをs3にアップロードしてから、aws-codedeployをサーバーに配置します。

しかし、私はジェンキンジョブを実行するときは、特定のgitリビジョンクローンだけを完全な内容ではなく、それだけでデプロイメントを構築することが欲しいです。

上記の問題について私を助けてください。事前のおかげで... Pre Steps

答えて

0

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> 
4

gitのコミットへのポインタとして任意のブランチを扱うとして、あなたは分岐指定子にコミットを指定することができます。

ブランチと呼ばれるものは、実際には特定のコミットへのポインタにすぎません。 Gitにはsvnなどのブランチはありません。したがって、特定のコミットをデプロイする場合は、それを提供するだけです。

私はあなたがそれを構築する必要があるたびに仕事に変更したくないと思います。ビルドをparametrizedにしてからuse the parameter as branch specifierにすることができます。

+0

感謝を理解し、私は特定の構築したいです*/masterを指定していますが、特定のコミット/リビジョンIDでデプロイしたいと思っています。 –

+0

回答が更新されました。 – trainmaster

+0

これをパイプラインで実行できますか?私は完全なshaを提供しようとしたが、リビジョンが見つかりませんでした。私は、GitScmプラグインは、タグ/ブランチの参照を取得し、javadocがこれを行うことができると言っても、すべてのコミットIDをサポートしていないと考えています。 –

-1

私はJenkins Pipelineを使用しています。

私はちょうどデプロイする前に、gitlabドッキングウィンドウの画像でチェックアウトを実行し、(古いコミット)コミット古いデプロイできます。この後

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.image('openjdk:8').inside('-u root -e MAVEN_OPTS="-Duser.home=./"') { 
     stage('build') { 
      build process* 
     } 
     stage('deploy') { 
      deploy process* 
     } 
} 

REV_VER、これはジェンキンスの設定で文字列parametrです。

デフォルト変数 - REV_VER(Jenkins設定) - (私の仕事枝)を開発してください。

しかし、あなたは「Parametrsでのビルド」

P.S.を実行すると、文字列REV_VERに(「5221e28」のように)コミット短いID上の任意の古いコミット、単に変更する変数を展開が必要な場合OMG、私は願って、私は「分岐指定子」のように、ブランチからコミットあなたが留守のために頑張ってください

)=私の英語は非常に悪いですので、私は、書いたもの

関連する問題