Jenkins は、ビルドごとにアーティファクトを保存できます。アーカイブするフォルダーを指定できます。(ただし、必要なすべてのアーティファクトを 1 つのフォルダーにコピーする方が簡単だと思います。この方法では、その 1 つのフォルダーを指定するだけで、何か不足していても心配する必要はありません。)
ビルドに基づいて展開するためにこれらのファイルが必要な場合は、それらをビルド アーティファクトとして Jenkins に保存します。これらは、ワークスペースのディレクトリ構造であるhttp://$JENKINS_URL/$JOB_NAME/$BUILD_NUMBER/artifact/...場所に保存されます。...たとえば、私は Java プロジェクトのすべてを以下のフォルダーの下にビルドしtarget、成果物をフォルダーの下に保存する傾向がありtarget/archiveます (単一のフォルダーの下にある場合、すべての成果物を簡単に保存できます) foo.txt。 URL は次のようになります。
http://$JENKINS_URL/$JOB_NAME/$BUILD_NUMBER/artifact/target/archive/foo.txt
wgetまたはを使用curlして、このアーティファクトをプルダウンできます。
Ant を使用している場合は、すべてのアーティファクトを 1 つの簡単に把握できるファイルに圧縮するか、tarball を作成することもできます。それが私がすることです。実際、私のtarget/archiveディレクトリには通常 3 つのファイルがあります。
- デプロイに必要なすべてのアーティファクト (スクリプトと中間ファイルを含む) の zip ファイルまたは tarball。
DEPLOYMENT_DIRECTIONS.txt配置指示を含むと呼ばれるファイル。
- というファイル
deploy.shが私の実際の展開ファイルです。
私のDEPLOYMNET_DIRECTIONS.txtファイルにはこれらの指示があります:
1). Log onto the Server
2). Execute the following curl command to download the deploy script:
curl -o deploy.sh "@JENKINS_URL@job/@JOB_NAME@/@BUILD_NUMBER@/artifact/target/archive/deploy.sh"
You may copy this and paste it right into the server where you're deploying.
3). Run the deploy.sh script.
$ bash deploy.sh
私の中にbuild.xmlは次のようなものがあります:
<copy todir="${archive.dir}">
<fileset dir="${main.config.dir}">
<include name="DEPLOYMENT_DIRECTIONS.txt"/>
<include name="deploy.sh"/>
</fileset>
<filterset>
<filter token="JOB_NAME" value="${env.JOB_NAME}"/>
<filter token="BUILD_NUMBER" value="${env.BUILD_NUMBER}"/>
<filter token="JENKINS_URL" value="${env.JENKINS_URL}"/>
</filterset>
</copy>
は、変数を Jenkins 自体の環境変数に<filterset>置き換えます。@...@今、私のDEPLOYMENT_DIRECTIONS.txt見た目は次のとおりです。
1). Log onto the Server
2). Execute the following curl command to download the deploy script:
curl -o deploy.sh "http://jenkins.vegicorp.com/jenkins/server_app/15/artifact/target/archive/deploy.sh"
You may copy this and paste it right into the server where you're deploying.
3). Run the deploy.sh script.
$ bash deploy.sh
その行は、サーバー上で #2 の方向からカット アンド ペーストできます。
いくつかのメモ:
- 既存のファイルを上書きするため、
curl代わりに使用します。このようにして、最新のものをダウンロードして、誰かが誤って以前のビルドから古いものを実行してしまうことを心配する必要はありません。wgetcurl -odeploy.shwgetdeploy.sh.2deploy.sh
base deploy.shパスについて心配する必要がなく、deploy.shシェルスクリプトで実行可能ビットを設定する必要がないためです。bash deploy.shを指定してから実行するよりも、使用するように人々に指示する方が簡単chmod u+xです./deploy.sh。
お役に立てれば。
ちなみに、これは 3 つの異なるグループの快適さレベルで設計されています。
- グループ #1 : デプロイが行われているマシンにログオンし、デプロイする特定のビルドを選択したいと考えています。これらのグループは、
DEPLOYMENT_DIRECTIONS.txt手動でデプロイするビルドのファイルの 3 つの手順に従います。
- グループ #2 : 彼らはデプロイするビルドを選択したいと考えていますが、サーバーにログインすることなく、Jenkins から直接これを行うことに満足しています。私はプロモート ビルド プラグインを使用して、ファイルの内容を自動化してい
DEPLOYMENT_DIRECTIONS.txtます。deploy.shダウンロードして実行するだけなので、とても簡単です。
- グループ #3 : すべてのビルドを自動的にデプロイしたいと考えています。ビルドが成功するたびにプロモーションを実行するように、Promoted Build Plugin を変更するだけです。
お役に立てれば。