6

scpプラグインを使用して、Jenkinsにビルドのアーティファクトを別のサーバーのアーカイブディレクトリにコピーさせようとしています。

理想的には、ビルドバージョンに基づいて宛先を動的にできるようにしたいので、結果は次のようになります。/builds/<build version>/

1.2.3.4のようなビルドバージョンの場合、次のようになります。

/builds/1.2.3.4/

scpプラグインのページを読んだところ、これは可能ではないようですが、ここの誰かがそれを理解しているのではないかと思いました。

これを行う方法はありますか?

ファイル名にバージョン番号が埋め込まれたアーティファクトを1つのディレクトリに配置する方がよいでしょうか。

4

1 に答える 1

4

あなたが言ったように、私はscpプラグインがそれを直接行うことができるとは思いません。ただし、回避策がある場合があります。

ビルドでは、$ BUILD_NUMBER(または場合によっては%BUILD_NUMBER%)を使用してビルド番号にアクセスできます-> LinuxとWindows)。

いずれの場合も、スクリプトの一部として、名前として$ BUILD_NUMBERを使用してディレクトリを作成できます。したがって、次のようになります。

mkdir -p $ BUILD_NUMBER

-また-

md%BUILD_NUMBER%

したがって、たとえば、新しいディレクトリは/path/to/workspace/1.2.3.4になります。

ビルドが完了したら、スクリプトの最後で、上記のディレクトリを作成し、アーティファクトをそのディレクトリに移動して、ディレクトリをtar/zipで圧縮します。

このtar/zipファイルをジョブの成果物として使用します。

scpプラグインを使用して、このアーティファクトを宛先マシンに転送し、そこで解凍/解凍します(たとえば、/ path / to / Artifact / directory) 。

その場合、/ path/to/artifact/directory/ 1.2.3.4になります。

次のビルド、たとえば1.2.3.5では、新しいディレクトリ(1.2.3.5という名前)を作成し、ビルドの最後にアーティファクトをそのディレクトリに移動し、圧縮して転送します。宛先で解凍すると、新しいビルドのアーティファクトを含む新しいディレクトリ/path/to/artifact/directory/1.2.3.5が作成されます。

紛らわしいように聞こえますが、実際には非常に簡単に実装できます。

于 2011-03-10T21:55:26.817 に答える