Jenkins : バージョン 1.525
Jenkins サーバー URL : http://my.jenkins.server.com:9040
Linux Red Hat 5.3
Artifactory : 無料版
Artifactory サーバー URL : http://my.artifactory.server:8081/Artifactory
Jenkins でビルドし、Artifactory サーバーのそれぞれのリポジトリにアーティファクトをアップロードすることに成功しました。
ビルドが発生すると、成果物 (ProjectA-1.0.0.25.tar.gz) が libs-snapshot-local リポジトリの下の Artifactory に移動します。ここで、1.0.0 は、アプリケーション/ジェンキンス ジョブの特定のリリースのメジャー バージョン、マイナー バージョン、および中間バージョンを示しています。この場合は「ProjectA」です。ビルド番号が 25 であるとしましょう
ProjectA ビルドが Development で安定すると、そのアプリケーション リリースの特定のビルドを INT またはその他のより高い環境 (QA/PrePROD など) に昇格させます。
この昇格プロセスでは、どのビルドを昇格させるかを選択するだけで、Jenkins のプロモーテッド ビルド プラグインを使用して、それを成功させることができます。
さて、必要なものは次のとおりです。
- 昇格プロセス中に、「ProjectA-1.0.0.25.tar.gz」が正常に実行された後、ProjectA のリリース 1.0.0 の Jenkins および Artifactory (libs-snapshot-local) からすべての Jenkins ビルドを削除する Groovy スクリプトを呼び出したいと考えています。 INTに昇格。プロモーション部分は現在正常に機能しています。必要なのは、Jenkins の Jenkins ビルド (1.0.0.1 から 1.0.0.24 および >= 1.0.0.25) とそれに関連するアーティファクトを Artifactory リポジトリ (libs-snapshot-local) から削除する Groovy スクリプトだけです。
私たちの会社のアイデアは、アプリケーションのリリース バージョンのビルドが昇格されると、(Jenkins/Artifactory にある) 他のすべてのビルド/アーティファクトを Groovy スクリプトを使用して完全に削除することです。別のビルド番号をプロモートしたい場合はどうすればよいか、誰かが尋ねるでしょう。私たちの場合、私たちはそれを望んでいません。簡単なルールは、誰かが ProjectA-1.0.0.25.tar.gz をプロモートした場合、ビルド/アーティファクトが 1.0.0.25 以外の Jenkins および Artifactory で ProjectA のビルド/アーティファクトを削除し、新しいリリース 1.1.0 を続行することです。
次の機能を備えたスクリプトは素晴らしいでしょう。
1. プロパティ ファイル (jenkins.properties / artifactory.properties) を使用します。これには、ホスト名/ユーザー名/パスワードなどに関する変数が含まれている場合があります。
2. REST API を使用して、特定のアプリケーション/ジョブおよび特定のリリース (ex 1.0.0 の場合) の削除を実行します
。ファイル - またはそれ (Artifatory) - どちらの場合も、アプリケーションとそのリリース値は同じになります。
4. ビルドを INT にプロモートする (Jenkins プロモート プラグインを使用) 場合は、常に Jenkins サーバーと Artifactory サーバーから libs-snapshot-release でのみ削除することがわかっています。
誰かが (後で) QA に昇格した場合、artifactory リポジトリは (libs-stage-local) になります。
つまり、Groovy スクリプトを呼び出し、いくつかの変数/値 (REST) を渡し、削除するアプリケーション/ジョブとそのビルド リリース バージョンを指定する必要があります。次に、ユーザーが渡すビルド (つまり、1.0.0.25) を除くすべてのビルドを削除します。
私はGroovyとJenkins/Artifactoryのこの「削除」作業を行うためのREST APIの使用の両方に不慣れです。誰かがこの種のアクティビティを実行するサンプル スクリプトを既に持っていて、共有できる場合は、私の設定に従って微調整し、昇格ステップで上記の動作が見られるかどうかを確認します。このスクリプトの動作するバージョンを取得するのに時間がかかります。同じタスクを実行するスクリプト コードを歓迎します (優れた人が大きなドキュメント/リンクを参照するように言うのではなく、Groovy でより優れたコーダーになることを知っています)。ただし、この投稿の目的全体が遅れます)。
どうもありがとう。