web-dev-qa-db-ja.com

フォルダのコンテンツをJenkinsのアーティファクトとして再帰的にアーカイブするにはどうすればよいですか?

私のjenkinsジョブは、ワークスペース内に「mydir」などの一時的なサブフォルダーを作成します。このサブフォルダーは、ビルド後の手順「アーティファクトのアーカイブ」を使用してアーカイブします。

次のコマンドを使用しています。

mydir/**/*

それはうまく機能しますしかしアーカイブにはアーティファクトのルートとして常にmydirが含まれますが、私はこのフォルダのコンテンツのみを持ちたいと思います。

これを行う方法?

6
tbop

この場合、私が行ったことは、関心のあるディレクトリの圧縮ファイル(tarまたはZip)を作成し、代わりにディレクトリ全体をアーティファクトすることです。スレーブがLinuxで実行されている場合は、次のように実行できます。

tar -czvf name-of-archive.tar.gz /path/of/build/directory

次に、アーティファクト名-of-archive.tar.gz

dir()を使用して、目的のディレクトリ内からアーティファクトをアーカイブできます。

    stage('Archive') {
        steps {
            dir('mydir') {
                archiveArtifacts artifacts: '**'
            }
        }
    }

https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/#dir-change-current-directory

0
Juanmi