ファイルアーティファクトを保存する
ビルドアーティファクトはビルドプロセスの出力です。たとえば、コードのコンパイルの結果として生成されたファイルなどです。オートメーションを使用して CI/CD パイプラインを構築すると、あるジョブ (CI/CD ステージ) によって作成されたファイルアーティファクトを別のジョブに渡すことができます。ファイルアーティファクトの作成がビルドプロセスの最終結果である場合は、このアーティファクトをファイルリポジトリに保存できます。
デフォルトのアーティファクトリポジトリ
Space のプロジェクトには、ビルドアーティファクトのデフォルトファイルリポジトリを関連付けることができます。
各プロジェクトには、対応するアクセス制限 (プロジェクトメンバーのみ) を備えた独自のデフォルトファイルリポジトリがあります。
リポジトリは、デフォルトリポジトリを参照するジョブ (ファイルのアップロードなど) を初めて実行するときに自動的に作成されます。
スクリプトでは、
run:file-artifacts.default-repository
パラメーターからデフォルトのファイルリポジトリの名前を取得できます。デフォルトのファイルリポジトリの代わりに、ジョブは Packages 内の任意のファイルリポジトリを使用できます。
デフォルトのファイルリポジトリのデフォルト名は default-automation-files です。この名前は、ファイルストレージ | ファイルアーティファクトリポジトリのジョブ | 設定で変更できます。
ビルドアーティファクトのディストリビューションにはパブリックファイルリポジトリを使用できます。
ファイルアーティファクトをアップロードする
ファイルをアップロードするには、実行環境に応じて、job.container.fileArtifacts
ブロックまたは job.host.fileArtifacts
ブロックを使用します。
デフォルトのアップロードパス
デフォルトリポジトリ内のファイルアーティファクトの結果のパスは、次の方法で生成されます。<basePath>/<fileArtifacts.remotePath>
:
<basePath>
は{{ run:job.repository }}/jobs/{{ dashify('{{ run:job.name }}') }}-{{ run:job.id }}/{{ run:number }}-{{ run:id }}
に解決されますこれらは、以下を表すパラメーターとして提供されます。
{{ run:job.repository }}
– Git リポジトリの名前。dashify('{{ run:job.name }}
– ここで、{{ run:job.name }}
はジョブ名です。dashify
関数は、すべての特殊文字を-
ダッシュ記号に置き換えます。例:Build artifacts
はBuild-artifacts
に変換されます{{ run:job.id }}
– ジョブ識別子。{{ run:number }}
– 現在のジョブの実行番号。{{ run:id }}
– 現在のジョブ実行の識別子。
<fileArtifacts.remotePath>
は、ジョブのremotePath
パラメーターで指定したものです。
例: 次のコード
build/build.zip
ファイルをデフォルトのファイルリポジトリの my-project/jobs/Generate-zip-file-IQ2qy0RwyJ5/5-1Euwjv1V3B9f/build/build.zip
ディレクトリに置きます。
ファイルストレージ | ベースパスのジョブ | 設定でデフォルトのベースパスを変更できます。
デフォルトとは異なるパスにアップロードするには、fileArtifacts.repository
パラメーターを使用します。
localPath の指定方法
localPath
は、保存するファイルまたはディレクトリの場所を定義します。次のように指定できます。
絶対パス (例:
/home/root/some-dir
)。現在のホームディレクトリに対する相対パス (例:
~/.m2
)。job.host
ステップでのみ使用できます。job.container
ステップでは、ここで説明されているのと同じ回避策を使用できます。ステップの作業ディレクトリ (デフォルトでは、プロジェクトのルート) に対する相対パス (例:
build
)。
ファイルとディレクトリをアーカイブする
ファイルまたはディレクトリをストレージにアップロードする前にアーカイブするように archive = true
を設定します。例:
ファイルリポジトリ内のファイルを上書きする
Space のファイルリポジトリには不変ファイルオプションがあります。有効にすると、リポジトリは同じパスを持つファイルを複数回アップロードすることを禁止します。無効にすると、ファイルは上書きされる可能性があります。デフォルトでは、このオプションはデフォルトのファイルリポジトリに対して有効になっています。
アップロード条件
fileArtifacts.onStatus
パラメーターを使用して、ファイルをアップロードするための条件をさらに指定できます。次のパラメーター値が可能です。
OnStatus.SUCCESS
– (デフォルト) ジョブが正常に終了した場合にのみファイルをアップロードします。OnStatus.ERROR
– ジョブがエラーで終了した場合にのみファイルをアップロードします。OnStatus.ALWAYS
– 常にファイルをアップロードしてください。
ファイルアーティファクトをデフォルト以外のリポジトリにアップロードする
デフォルトとは異なるリポジトリにアーティファクトをアップロードするには、fileArtifacts.repository
パラメーターを使用します。このリポジトリは、ジョブを実行するのと同じプロジェクトに属している必要があることに注意してください。
別のプロジェクトで作成されたファイルリポジトリにアーティファクトをアップロードするには、まずこのリポジトリを現在のプロジェクトにアタッチする必要があります。
ジョブ内のファイルアーティファクトをダウンロードして再利用する
ビルド時間を短縮し、インフラストラクチャの負荷を軽減するために、以前のジョブ実行からのビルドアーティファクトを新しいジョブの実行で再利用できます。ファイルリポジトリからビルドアーティファクトをダウンロードするには、fileInput
ブロックを使用する必要があります。アーティファクトが抽出する .tar.gz アーカイブである場合は、extract = true
を指定します。
デフォルト以外のリポジトリからファイルアーティファクトを取得する
デフォルトとは異なるリポジトリからファイルアーティファクトをダウンロードするには、FileSource.FileArtifact
にリポジトリ名を指定します。このリポジトリは、ジョブを実行するのと同じプロジェクトに属している必要があることに注意してください。
別のプロジェクトで作成されたファイルリポジトリからアーティファクトをダウンロードするには、まずこのリポジトリを現在のプロジェクトにアタッチする必要があります。
他のファイルソース
fileInput.FileSource
パラメーターを使用すると、ファイルリポジトリだけでなく他のソースからもファイルを取得できます。現時点では、あと 1 つのソースのみがサポートされています。
FileSource.Text
を使用すると、文字列 (プレーンテキスト) からファイルを作成できます。この主な使用例は、プロジェクトシークレットからファイルを作成することです。詳細
アーティファクトが見つからない場合はジョブの実行を続行する
デフォルトでは、fileInput.source
で指定されたファイルアーティファクトが見つからない場合、ジョブは失敗します。ジョブの実行を継続したい場合は、optional = true
を指定します。例:
ビルドアーティファクトの表示とダウンロード
ジョブ実行のビルドアーティファクトを表示およびダウンロードするには
目的のプロジェクトを開きます。
サイドバーメニューで、ジョブを選択します。
希望のジョブを開きます。
特定のジョブの実行試行を開きます。
アーティファクトタブを開きます。
必要なファイルの横にある「 ダウンロード」をクリックします。
プロジェクト内のすべてのビルドアーティファクトを表示するには
目的のプロジェクトを開きます。
サイドバーメニューで、パッケージを選択します。
ファイルアーティファクトを含むファイルリポジトリを開きます。デフォルトのファイルリポジトリの場合、default-automation-files になります。
関連ページ:
パラメーターとシークレット
パラメーターは、ユーザーによって定義されるか、Automation によって提供される名前と値のペアです。パラメーターの主な目的は、さまざまなデータをジョブに渡すことです。例: これは、Docker イメージ名、URL、コマンドライン引数などです。あるいは、アクセストークンやパスワードである場合もあります。このような機密パラメーターはシークレットと呼ばれます。ジョブでパラメーターを使用する:ジョブのパラメーターを取得するには、その名前を二重波括弧: 内の文字列で指定します。これは、、を除く、DS...
パッケージリポジトリの管理
システム管理者ロールを持つユーザーは、管理 | パッケージリポジトリページを使用してリポジトリのグローバル管理を実行できます。このページで利用できるリポジトリのリストは、ユーザーアカウントの権限によって異なります。管理 | パッケージリポジトリページで: アクティブには、プロジェクトにアタッチされているリポジトリのリストが表示されます。プロジェクト内にリポジトリを作成すると、そのリポジトリはこのプロジェクトにアタッチされます。接続されたリポジトリは、別名によって区別できます。リポジトリを複数のプロ...
プロジェクトに参加する
あるプロジェクトに貢献を開始したい場合は、そのプロジェクトに参加する必要があります。つまり、そのプロジェクトのメンバーになる必要があります。貢献しようとしているプロジェクトに移動します。すでにメンバーである場合は、プロジェクトのページのプロジェクトメンバーにリストされます。そうでない場合は、プロジェクト管理者に連絡してメンバーシップを依頼してください。プロジェクト管理者を確認するには、プロジェクトページでメンバーウィジェットをクリックします。プロジェクトを探す:すべてのプロジェクトは名前で見つ