回答2:はい、ワークスペースを共有することは悪い考えです。ファイルロックの可能性があります。ワークスペースが消去されるという問題があります。しないでください...
回答1:必要なのは、ビルドのアーティファクトをアーカイブすることです。このように、特定のビルドのアーティファクト(ビルド番号別)は、別のビルドが実行されているかどうか、またはワークスペースがどのような状態にあるかに関係なく、常に利用可能です。
アーティファクトをアーカイブするには
- ビルドジョブの[ビルド後のアクション]で、[アーティファクトのアーカイブ]を選択します
- アーカイブするアーティファクトを指定します(以下の組み合わせを使用できます) a)
すべてをアーカイブできます:*.*
b)ワイルドカードを使用して特定のファイルをアーカイブできます:/path/to/file_version*.zip
c)次のような中間ディレクトリは無視できます:**/file_version*.zip
- 多くのアーティファクトに関するストレージの問題を回避するには、構成の上部で[古いビルドを破棄]を選択し、[詳細設定]ボタンをクリックして、アーティファクトを保持する日数とアーティファクトを保持するビルドの最大数を試してみてください。これらの2つの設定は、実際のビルドが保持される期間を制御しないことに注意してください(他の設定がそれを制御します)
Jenkinsのアーティファクトにアクセスするには
- ビルド履歴で、必要な以前のビルドを選択します。
- SCMの変更およびリビジョンデータに加えて、ビルドアーティファクトリンクがあり、その下にその特定のビルドのすべてのアーティファクトがあります。
- たとえば、Jenkinsのパーマリンクを使用してそれらにアクセスし
http://JENKINS_URL/job/JOB_NAME/lastSuccessfulBuild/artifact/
、次にアーティファクトの名前を使用することもできます。
別のジョブのアーティファクトにアクセスするには
ここでは、別のデプロイジョブ(この例ではProductionPush
)から以前のアーティファクトにアクセスする方法について詳しく説明しました:
Jenkinsの別のジョブから特定のビルド番号をプロモートする方法は?
要件が常に最新のビルドを本番環境にデプロイすることである場合は、上記のリンクでプロモーションの構成をスキップできます。デプロイジョブの設定手順に従ってください。デプロイジョブを取得したら、それが常に同時に実行される場合は、定期的にビルドパラメーターを構成するだけです。または、必要な条件に基づいてデプロイジョブをトリガーする別のジョブを作成することもできます。
上記のいずれの場合でも、デフォルトセレクターが最新の正常なビルドに設定されている場合(上記のリンクで説明されているように)、最新のビルドが本番環境にプッシュされます