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
代わりに使用します。このようにして、最新のものをダウンロードして、誰かが誤って以前のビルドから古いものを実行してしまうことを心配する必要はありません。wget
curl -o
deploy.sh
wget
deploy.sh.2
deploy.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 を変更するだけです。
お役に立てれば。