2017-05-03 3 views
1

異なるOSで実行する必要があるコード(実際にはビルド、テスト、パッケージはtoxなど)があります。現在、私のJenkinsfileは、このように次のようになります。Jenkinsfileと複数のノード

pipeline { 

    // Where to run stuff. 
    agent { 
     node { 
      label 'CentOS7' 
      customWorkspace '/home/build/jenkins/workspace/pipelines/ook' 
     } 
    } 

    // What to run goes here. 
    stages { 
     stage('Tox') { 
      steps { 
       sh 'tox -v --recreate' 
      } 
     } 
    } 

    // Clean up after ourselves. 
    post { 
     failure { 
      mail subject: "\u2639 ${env.JOB_NAME} (${env.BUILD_NUMBER}) has failed", 
        body: """Build ${env.BUILD_URL} is failing! 
    Somebody should do something about that\u2026""", 
          to: "[email protected]", 
        replyTo: "[email protected]", 
         from: '[email protected]' 
      } 
     } 
    } 
} 

真ん中ビット、私は2つの異なるnodes上で実行したい:OS用OS 1用と2

私はそれをどのように行うのですか?

答えて

1

確かに、スレーブノードに何らかのラベルを付けることをお勧めします。私はtoxが何であるかを調べなかったが、 'os_linux'や 'os_mac'のようにして、Jenkinsfileのnodeステップを使用して、各スレーブのコンテキストでいくつかのコマンドを実行することができます。これはシリアルでタスクを実行します

stage('Tox') { 
    steps { 
    node('os_linux') { 
     sh 'tox -v --recreate' 
    } 
    node('os_mac') { 
     sh 'tox -v --recreate' 
    } 
    } 
} 

、およびJenkinsfile構文はまた、異なるノード上で並行してこれら2つのTOXコマンドをやってサポートしています。だからあなたの毒物検査の段階は、次のようになります。 JenkinsのUIの左側のナビゲーション(パイプラインジョブのみ)の "Pipeline Syntax"リンクを使用して、nodeとで遊んでください。ロックオン。

+0

この場合、 'customWorkspace'をどのように定義すればよいでしょうか? – Sardathrion

+0

また、私はもっと恐ろしい文書を読むべきです(https://jenkins.io/doc/book/pipeline/jenkinsfile/#using-multiple-agents)。☹ – Sardathrion

+0

[Toxはテストの自動化と標準化を目指していますPythonで。 Pythonソフトウェアのパッケージング、テスト、リリースプロセスを容易にする大きなビジョンの一部です。](https://tox.readthedocs.io/en/latest/)。 – Sardathrion

関連する問題