2017-04-10 7 views
3

Bitbucket Serverリポジトリを指すマルチブランチパイプラインジョブがあります。マルチブランチパイプラインジョブをマスタで複製リポジトリから保持する方法

Jenkinsfile上で何かを実行する前に、常にマスターノードのワークスペース内のリポジトリの完全クローンが常に実行されます。

リポジトリの新しいクローンを1つのブランチごとに作成して、新しいワークスペースを作成します。

大きなリポジトリの中にはかなりの時間がかかるだけでなく、マスターノードで多くのスペースを占有しているだけでなく、マスター

  • 以外の別のノード上のリポジトリが自動的に削除フルリポジトリ
  • クローンのクローンを作成することなく、

    1. ダウンロード(および実行)Jenkinsfile:

      は、それが次のいずれかを行うのですが可能です自動削除されたジョブのワークスペース

  • 答えて

    0

    それは本当に迷惑でもあります。現在、この問題の回避策はありません。ビルドを開始するには、リポジトリにあるJenkinsfileが必要です。完全なリポジトリを取得して見つけます。詳細については、JENKINS-33273 Optimize Jenkinsfile loading and branch detectionをご覧ください。

    HDDスペースが不足しているマスターの回避策は、ジョブの実行後にリポジトリコピーを削除することです。このスニペットをJenkinsfileに追加するだけです。

    node('master') { 
        stage 'Cleanup repository from master node' 
    
        // Due to the MultiPipeLine problem with fetching full repository on the 
        // master node we need to manually cleanup the workspace to prevent trashing 
        // HDD with copies of the git repository 
        def workspace = pwd() 
        dir("${workspace}@script") { 
         deleteDir() 
        } 
    }