公式ドキュメントより
公式ドキュメント には、以下のように記載されています。
現在、store_artifacts には path と destination の 2 つのキーがあります。
path は、アーティファクトとしてアップロードされるファイルまたはディレクトリのパスです。
destination (オプション) は、アーティファクト API でアーティファクト パスに追加されるプレフィックスです。 path で指定されたファイルのディレクトリがデフォルトとして使用されます。
YAML の例
steps に以下のような YAML が設定されているとします。公式ドキュメントの内容そのままです。以降はこの YAML を用いているものとして説明をします。
steps: - run: name: ダミー アーティファクトの作成 command: | echo "my artifact file" > /tmp/artifact-1; mkdir /tmp/artifacts; echo "my artifact files in a dir" > /tmp/artifacts/artifact-2; - store_artifacts: path: /tmp/artifact-1 destination: artifact-file - store_artifacts: path: /tmp/artifacts
"destination" を使う場合
destination
を使う場合には以下の特徴があります。
- ファイル名を具体的に指定してはいけない
- つまり、書き出し先としては「ディレクトリ名」を指定する
path
に指定したディレクトリをmkdir
で作る必要はない
前者については、例えば、echo "my artifact file" > /tmp/artifact-1/hogehoge.txt;
のように指定すると以下のようにエラーになります。
/bin/bash: /tmp/artifact-1/hogehoge.txt: No such file or directory
"destination" を使わない場合
destination
を使わない場合には以下の特徴があります。
- ファイル名を具体的に指定する
path
に指定したディレクトリをmkdir
で作る必要がある
こちらの方が一般的かと思います。ディレクトリを自前で作る必要がある点には注意が必要です。