## 事象
`target`配下が以下のようになっている。
```
target
├── a.txt
└── b
└── c.txt
```
`artifacts`として`target`一式が欲しいが、それが取得できない。
## 原因
いくつかのパターンがある。
### ディレクトリを指定している
以下のような設定の場合。
```yaml
artifacts:
- target
```
`artifacts`の指定はディレクトリではなく、ファイルの[[glob]]パターンを設定する必要がある。
### globパターンがネストを考慮できていない
以下のような設定の場合。
```yaml
artifacts:
- target/*
```
`target/a.txt`はartifactsに含まれるが、`target/b/c.txt`がartifactsに含まれない。
```yaml
artifacts:
- target/**/*
```
上記の場合だと`target/b/c.txt`は含まれるが、`target/a.txt`が含まれなくなる。
### カレントディレクトリからのパスになっていない
以下のような設定の場合。
```yaml
artifacts:
- target/**
```
ジョブの最後では`target`がカレントディレクトリだが、最初は親のディレクトリだった場合など。
```
sand <-- ここから開始
└── target <-- 途中で cd target して移動してた
├── a.txt
└── b
└── c.txt
```
## 対策
### ディレクトリを指定している場合
以下のように指定する。
```yaml
artifacts:
- target/**
```
### globパターンがネストを考慮できていない場合
以下のように指定する。
```yaml
artifacts:
- target/**
```
### カレントディレクトリからのパスになっていない場合
以下のように指定する。
```yaml
artifacts:
- sand/target/**
```