1. ホーム
  2. jenkins

[解決済み] Jenkinsプロジェクトのアーティファクトとワークスペース

2022-03-02 14:35:10

質問

これまで何年もjenkinsを使ってきましたが、自分でセットアップしたことはなく、今回新しい職場でセットアップしてみました。いくつかの質問と問題にぶつかりました。

ワークスペースのデフォルトの場所 - 最新のJenkinsでは、デフォルトのワークスペースがJenkinsの[projectName]workspaceにあり、ビルドごとに上書き(選択すれば消去)されるようです。Jenkinsjobs[projectName]↵builds[build_id]↵で、ビルドごとにワークスペースの状態を保存して、後で参照できるようにすればいいのでは?

project>Build_ID ページにワークスペースを表示する。 - これは、以前のビルドの各「ワークスペース」がここに表示されることを期待していたため、前述と同じです。現在私のセットアップでは、この個別ページには Git リビジョンとビルドのきっかけとなったリポジトリ変更以外は何も表示されません。コンソール出力と同様です。アーティファクトはどこにあるのでしょうか?使用されたこのビルドのワークスペースへのリンクはどこにあるのでしょうか?

ビルドにおけるアーティファクトのアーカイブ - アーティファクトを選択する際、フィルタが機能しないようです。私のビルドでは、ワークスペース内にアーティファクトを含むファイル構造が作成されます。これを保存したいのですが、アーティファクトフィルターはワークスペースから始まると言っています。そこで、'artifacts'と入れても何も保存されません(また、これはどこに保存されるのでしょうか)。また、'/artifacts' や 'artifacts/*' も試しています。

何かお手伝いいただけると幸いです。ありがとうございます!

解決方法は?

Jenkinsのいくつかの側面について混乱しているように見えますが...。私はあなたの質問は、基本的に以下のことに集約されると思います。

ワークスペースとビルドの違いは何ですか?

そこで、このテーマについて、いくつか考えてみました。

  1. ビルドは履歴データです。 ワークスペースがビルド/チェックアウト中に変更されるようなことは(通常)ありません。
  2. ビルドには、実行に関する情報(ステータス、ビルド番号、変更ログなど)と、アーカイブするように指示した成果物(ログ、テスト結果など)が含まれます。 ワークスペースのようなソースコードは含まれません。
  3. ビルドは Jenkins\jobs\[projectName]\builds\[build_id]\ ディレクトリに格納されます。 これはJenkinsが管理するディレクトリで、(通常は)このディレクトリの何かを変更する必要はありません。 しかし、ワークスペースはビルドのためのディレクトリであり、あなたはそれを使ってかなり多くのことを行うことができ、どこにでも置くことができます(それは、デフォルトの Jenkins\jobs\[projectName]\workspace ディレクトリを作成します。
  4. ワークスペースは、いつでもワイプできるようにすること。 復元するには、同じパラメータ/リビジョンでジョブをリビルドするだけです。ビルド後に何かを残す必要がある場合は、ビルドが完了する前にアーカイブするようにJenkinsに伝えてください。
  5. 状態全体を保存することに関しては、その必要はないと思います。 4で述べたように、問題のビルドと同じリビジョン/パラメータをキックオフすることで、同じビルドを再現できるはずです。 もし同じリビジョン/パラメータから元の状態に戻れないのであれば、デバッグが悪夢になるため、それは努力すべきことかもしれません :)
  6. ワークスペースはプロジェクトの一側面であり、ビルドではないので、そのページからワークスペースへのリンクがないのはそのためです。 繰り返しになりますが、ビルドは前回実行時のデータを保存しただけのものです。 プロジェクトはワークスペースを使用してビルドを行うので、そのページからワークスペースにアクセスすることができます。
  7. 成果物の保存方法に関して、保存したいファイル名を指定する必要があります。 もし、"artifacts"という名前のファイルを保存しようとしているのでなければ、他のものを使うべきでしょう。 次のようにするとどうでしょう。 **/*.log をすべてのログファイルに適用するか、あるいは **/*.xml すべての xml ファイルを対象とするか?

お役に立てれば幸いです。