2017-12-19 15 views
1

ジェンキンスにとっては初めてです。私のリポジトリはmonorepoです - 二つのサブプロジェクト、web_appnative_appが含まれています。 JenkinsをCIエンジンとして使用してコードがリポジトリにプッシュされるたびに、Jenkinsはビルドテストの配信ワークフローを自動的に行うのに役立ちます。ジェンキンスパイプラインはモノレポとどのように連携できますか

私は直感的に、すなわち、私は関連フォルダの下に2 Jenkinsfile、それぞれを作成する必要がありそうです、パイプラインプロジェクトを作成:

web_app/ 
    |-Jenkinsfile 
native_app/ 
    |-Jenkinsfile 

しかし、私はすぐに、これは問題になります実現 - 私はのための作業ディレクトリを変更する必要がありますほぼすべてのステージ/ステップ。試しました

stage('Build') { 
    steps { 
     sh 'cd ./web_app/' 
     sh 'ls' 
     sh 'git pull' 
    } 
} 

しかし、作業ディレクトリは変更されません。

パイプライン全体の作業スペースを変更する効果的な方法が見つからず、このモノレポ構造が将来のJenkinsの問題を引き起こす可能性があると心配しています。このリポジトリを分割するか、作業ディレクトリを変更する便利な方法がありますか?

+0

あなたは[JENKINS-43749](https://issues.jenkins-ci.org/browse/JENKINS-43749)を探している可能性がありのようですね。 – mkobit

+0

@mkobitそしてそれはまだ '未解決の'です..私はちょうどrepos –

答えて

0

dirステップを使用して、ステップブロックのディレクトリを変更することができます。あなたのサンプルコードは次のようになります。

stage('Build') { 
    dir('web_app') { 
    sh 'ls' 
    sh 'git pull' 
    } 
} 

Documentation of the dir step

dirが現在のディレクトリに

変更カレントディレクトリを変更します。 dirブロック内の任意のステップはこのディレクトリを現在のものとして使用し、相対パスはそれをベースパスとして使用します。 パス

型:String

関連する問題