upload-artifact/README.md

106 lines
3.3 KiB
Markdown
Raw Normal View History

# Upload-Artifact v2 Preview
2019-07-24 03:24:56 +08:00
This uploads artifacts from your workflow allowing you to share data between jobs and store data once a workflow is complete.
2019-07-24 03:24:56 +08:00
2019-09-09 13:36:31 +08:00
See also [download-artifact](https://github.com/actions/download-artifact).
2019-07-24 03:24:56 +08:00
# Usage
See [action.yml](action.yml)
### Upload an Individual File
2019-07-24 03:24:56 +08:00
```yaml
2019-07-26 09:33:03 +08:00
steps:
- uses: actions/checkout@v2
2019-07-24 03:24:56 +08:00
- run: mkdir -p path/to/artifact
- run: echo hello > path/to/artifact/world.txt
- uses: actions/upload-artifact@v2-preview
2019-07-24 03:24:56 +08:00
with:
name: my-artifact
path: path/to/artifact/world.txt
2019-07-24 03:24:56 +08:00
```
### Upload an Entire Directory
```yaml
- uses: actions/upload-artifact@v2-preview
with:
name: my-artifact
path: path/to/artifact/ # or path/to/artifact
```
### Upload using a Wildcard Pattern:
```yaml
- uses: actions/upload-artifact@v2-preview
with:
name: my-artifact
path: path/**/[abc]rtifac?/*
```
For supported wildcards along with behavior and documentation, see [@actions/glob](https://github.com/actions/toolkit/tree/master/packages/glob) which is used internally to search for files.
Relative and absolute file paths are both allowed. Relative paths are rooted against the current working directory.
### Conditional Artifact Upload
To upload artifacts only when the previous step of a job failed, use [`if: failure()`](https://help.github.com/en/articles/contexts-and-expression-syntax-for-github-actions#job-status-check-functions):
```yaml
- uses: actions/upload-artifact@v2-preview
if: failure()
with:
name: my-artifact
path: path/to/artifact/
```
### Uploading without an artifact name
You can upload an artifact without specifying a name
```yaml
- uses: actions/upload-artifact@v2-preview
with:
path: path/to/artifact/world.txt
```
If not provided, `artifact` will be used as the default name which will manifest itself in the UI after upload.
### Uploading to the same artifact
Each artifact behaves as a file share. Uploading to the same artifact multiple times in the same workflow can overwrite and append already uploaded files
```yaml
- run: echo hi > world.txt
- uses: actions/upload-artifact@v2-preview
with:
path: world.txt
- run: echo howdy > extra-file.txt
- uses: actions/upload-artifact@v2-preview
with:
path: extra-file.txt
- run: echo hello > world.txt
- uses: actions/upload-artifact@v2-preview
with:
path: world.txt
```
With the following example, the available artifact (named `artifact`) would contain both `world.txt` (`hello`) and `extra-file.txt` (`howdy`).
## Where does the upload go?
In the top right corner of a workflow run, once the run is over, if you used this action, there will be a `Artifacts` dropdown which you can download items from. Here's a screenshot of what it looks like<br/>
2020-01-17 03:38:17 +08:00
<img src="https://user-images.githubusercontent.com/16109154/72556687-20235a80-386d-11ea-9e2a-b534faa77083.png" width="375" height="140">
2020-01-17 03:36:06 +08:00
There is a trash can icon that can be used to delete the artifact. This icon will only appear for users who have write permissions to the repository.
## Additional Documentation
See [persisting workflow data using artifacts](https://help.github.com/en/actions/configuring-and-managing-workflows/persisting-workflow-data-using-artifacts) for additional examples and tips.
2019-07-24 03:24:56 +08:00
# License
The scripts and documentation in this project are released under the [MIT License](LICENSE)