Improve README.md

Fix typo
This commit is contained in:
Andreas Deininger 2026-02-28 19:42:56 +01:00
parent bbbca2ddaa
commit 4d1db8d721
2 changed files with 49 additions and 26 deletions

View file

@ -14,7 +14,7 @@ Please note that this project is released with a [Contributor Code of Conduct][c
## Found a bug? ## Found a bug?
- **Ensure the bug was not already reported** by searching on GitHub under [Issues](https://github.com/actions/upload-artifact/issues). - **Ensure the bug was not already reported** by searching on GitHub under [Issues](https://github.com/actions/upload-artifact/issues).
- If you're unable to find an open issue addressing the problem, [open a new one](https://github.com/actions/upload-artifact/issues/new). Be sure to include a **title and clear description**, as much relevant information as possible, and a **code sample** or a **reproducable test case** demonstrating the expected behavior that is not occurring. - If you're unable to find an open issue addressing the problem, [open a new one](https://github.com/actions/upload-artifact/issues/new). Be sure to include a **title and clear description**, as much relevant information as possible, and a **code sample** or a **reproducible test case** demonstrating the expected behavior that is not occurring.
- If possible, use the relevant bug report templates to create the issue. - If possible, use the relevant bug report templates to create the issue.
## What should I know before submitting a pull request or issue ## What should I know before submitting a pull request or issue

View file

@ -1,9 +1,9 @@
# `@actions/upload-artifact` # `@actions/upload-artifact`
> [!WARNING] > [!WARNING]
> actions/upload-artifact@v3 is scheduled for deprecation on **November 30, 2024**. [Learn more.](https://github.blog/changelog/2024-04-16-deprecation-notice-v3-of-the-artifact-actions/) > actions/upload-artifact@v3 was deprecated on **November 30, 2024**. [Learn more.](https://github.blog/changelog/2024-04-16-deprecation-notice-v3-of-the-artifact-actions/)
> Similarly, v1/v2 are scheduled for deprecation on **June 30, 2024**. > Similarly, v1/v2 were deprecated on **June 30, 2024**.
> Please update your workflow to use v4 of the artifact actions. > Please update your workflow to use at least v4 of the artifact actions.
> This deprecation will not impact any existing versions of GitHub Enterprise Server being used by customers. > This deprecation will not impact any existing versions of GitHub Enterprise Server being used by customers.
Upload [Actions Artifacts](https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts) from your Workflow Runs. Internally powered by [@actions/artifact](https://github.com/actions/toolkit/tree/main/packages/artifact) package. Upload [Actions Artifacts](https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts) from your Workflow Runs. Internally powered by [@actions/artifact](https://github.com/actions/toolkit/tree/main/packages/artifact) package.
@ -11,6 +11,7 @@ Upload [Actions Artifacts](https://docs.github.com/en/actions/using-workflows/st
See also [download-artifact](https://github.com/actions/download-artifact). See also [download-artifact](https://github.com/actions/download-artifact).
- [`@actions/upload-artifact`](#actionsupload-artifact) - [`@actions/upload-artifact`](#actionsupload-artifact)
- [v7 - What's new](#v7---whats-new)
- [v6 - What's new](#v6---whats-new) - [v6 - What's new](#v6---whats-new)
- [v4 - What's new](#v4---whats-new) - [v4 - What's new](#v4---whats-new)
- [Improvements](#improvements) - [Improvements](#improvements)
@ -23,6 +24,7 @@ See also [download-artifact](https://github.com/actions/download-artifact).
- [Upload an Entire Directory](#upload-an-entire-directory) - [Upload an Entire Directory](#upload-an-entire-directory)
- [Upload using a Wildcard Pattern](#upload-using-a-wildcard-pattern) - [Upload using a Wildcard Pattern](#upload-using-a-wildcard-pattern)
- [Upload using Multiple Paths and Exclusions](#upload-using-multiple-paths-and-exclusions) - [Upload using Multiple Paths and Exclusions](#upload-using-multiple-paths-and-exclusions)
- [Upload a file without compressing it](#upload-a-file-without-compressing-it)
- [Altering compressions level (speed v. size)](#altering-compressions-level-speed-v-size) - [Altering compressions level (speed v. size)](#altering-compressions-level-speed-v-size)
- [Customization if no files are found](#customization-if-no-files-are-found) - [Customization if no files are found](#customization-if-no-files-are-found)
- [(Not) Uploading to the same artifact](#not-uploading-to-the-same-artifact) - [(Not) Uploading to the same artifact](#not-uploading-to-the-same-artifact)
@ -39,6 +41,10 @@ See also [download-artifact](https://github.com/actions/download-artifact).
- [Where does the upload go?](#where-does-the-upload-go) - [Where does the upload go?](#where-does-the-upload-go)
## v7 - What's new
This version adds support for uploading a file directly without compressing it.
## v6 - What's new ## v6 - What's new
> [!IMPORTANT] > [!IMPORTANT]
@ -101,9 +107,10 @@ You are welcome to still raise bugs in this repo.
### Inputs ### Inputs
```yaml ```yaml
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v7
with: with:
# Name of the artifact to upload. # Name of the artifact to upload.
# If the `archive` input is `false`, the name of the file uploaded will be the artifact name.
# Optional. Default is 'artifact' # Optional. Default is 'artifact'
name: name:
@ -142,6 +149,12 @@ You are welcome to still raise bugs in this repo.
# enabled this to avoid uploading sensitive information. # enabled this to avoid uploading sensitive information.
# Optional. Default is 'false' # Optional. Default is 'false'
include-hidden-files: include-hidden-files:
# If true, the artifact will be archived (zipped) before uploading.
# If false, the artifact will be uploaded as-is without archiving.
# When `archive` is `false`, only a single file can be uploaded. The name of the file will be used as the artifact name (ignoring the `name` parameter).
# Optional. Default is 'true'
archive:
``` ```
### Outputs ### Outputs
@ -160,7 +173,7 @@ You are welcome to still raise bugs in this repo.
steps: steps:
- run: mkdir -p path/to/artifact - run: mkdir -p path/to/artifact
- run: echo hello > path/to/artifact/world.txt - run: echo hello > path/to/artifact/world.txt
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v7
with: with:
name: my-artifact name: my-artifact
path: path/to/artifact/world.txt path: path/to/artifact/world.txt
@ -169,7 +182,7 @@ steps:
### Upload an Entire Directory ### Upload an Entire Directory
```yaml ```yaml
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v7
with: with:
name: my-artifact name: my-artifact
path: path/to/artifact/ # or path/to/artifact path: path/to/artifact/ # or path/to/artifact
@ -178,7 +191,7 @@ steps:
### Upload using a Wildcard Pattern ### Upload using a Wildcard Pattern
```yaml ```yaml
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v7
with: with:
name: my-artifact name: my-artifact
path: path/**/[abc]rtifac?/* path: path/**/[abc]rtifac?/*
@ -187,7 +200,7 @@ steps:
### Upload using Multiple Paths and Exclusions ### Upload using Multiple Paths and Exclusions
```yaml ```yaml
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@7
with: with:
name: my-artifact name: my-artifact
path: | path: |
@ -216,6 +229,16 @@ If multiple paths are provided as input, the least common ancestor of all the se
Relative and absolute file paths are both allowed. Relative paths are rooted against the current working directory. Paths that begin with a wildcard character should be quoted to avoid being interpreted as YAML aliases. Relative and absolute file paths are both allowed. Relative paths are rooted against the current working directory. Paths that begin with a wildcard character should be quoted to avoid being interpreted as YAML aliases.
### Upload a file without compressing it
```yaml
- uses: actions/upload-artifact@v7
with:
name: my-artifact
path: path/to/artifact/example.pdf # single file only
archive: false # do not compress file into Zip archive
```
### Altering compressions level (speed v. size) ### Altering compressions level (speed v. size)
If you are uploading large or easily compressable data to your artifact, you may benefit from tweaking the compression level. By default, the compression level is `6`, the same as GNU Gzip. If you are uploading large or easily compressable data to your artifact, you may benefit from tweaking the compression level. By default, the compression level is `6`, the same as GNU Gzip.
@ -235,7 +258,7 @@ For instance, if you are uploading random binary data, you can save a lot of tim
- name: Make a 1GB random binary file - name: Make a 1GB random binary file
run: | run: |
dd if=/dev/urandom of=my-1gb-file bs=1M count=1000 dd if=/dev/urandom of=my-1gb-file bs=1M count=1000
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v7
with: with:
name: my-artifact name: my-artifact
path: my-1gb-file path: my-1gb-file
@ -248,7 +271,7 @@ But, if you are uploading data that is easily compressed (like plaintext, code,
- name: Make a file with a lot of repeated text - name: Make a file with a lot of repeated text
run: | run: |
for i in {1..100000}; do echo -n 'foobar' >> foobar.txt; done for i in {1..100000}; do echo -n 'foobar' >> foobar.txt; done
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v7
with: with:
name: my-artifact name: my-artifact
path: foobar.txt path: foobar.txt
@ -260,7 +283,7 @@ But, if you are uploading data that is easily compressed (like plaintext, code,
If a path (or paths), result in no files being found for the artifact, the action will succeed but print out a warning. In certain scenarios it may be desirable to fail the action or suppress the warning. The `if-no-files-found` option allows you to customize the behavior of the action if no files are found: If a path (or paths), result in no files being found for the artifact, the action will succeed but print out a warning. In certain scenarios it may be desirable to fail the action or suppress the warning. The `if-no-files-found` option allows you to customize the behavior of the action if no files are found:
```yaml ```yaml
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v7
with: with:
name: my-artifact name: my-artifact
path: path/to/artifact/ path: path/to/artifact/
@ -273,13 +296,13 @@ Unlike earlier versions of `upload-artifact`, uploading to the same artifact via
```yaml ```yaml
- run: echo hi > world.txt - run: echo hi > world.txt
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@7
with: with:
# implicitly named as 'artifact' # implicitly named as 'artifact'
path: world.txt path: world.txt
- run: echo howdy > extra-file.txt - run: echo howdy > extra-file.txt
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v7
with: with:
# also implicitly named as 'artifact', will fail here! # also implicitly named as 'artifact', will fail here!
path: extra-file.txt path: extra-file.txt
@ -305,7 +328,7 @@ jobs:
- name: Build - name: Build
run: ./some-script --version=${{ matrix.version }} > my-binary run: ./some-script --version=${{ matrix.version }} > my-binary
- name: Upload - name: Upload
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@7
with: with:
name: binary-${{ matrix.os }}-${{ matrix.version }} name: binary-${{ matrix.os }}-${{ matrix.version }}
path: my-binary path: my-binary
@ -323,7 +346,7 @@ You can use `~` in the path input as a substitute for `$HOME`. Basic tilde expan
- run: | - run: |
mkdir -p ~/new/artifact mkdir -p ~/new/artifact
echo hello > ~/new/artifact/world.txt echo hello > ~/new/artifact/world.txt
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v7
with: with:
name: my-artifacts name: my-artifacts
path: ~/new/**/* path: ~/new/**/*
@ -338,7 +361,7 @@ Environment variables along with context expressions can also be used for input.
- run: | - run: |
mkdir -p ${{ github.workspace }}/artifact mkdir -p ${{ github.workspace }}/artifact
echo hello > ${{ github.workspace }}/artifact/world.txt echo hello > ${{ github.workspace }}/artifact/world.txt
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v7
with: with:
name: ${{ env.name }}-name name: ${{ env.name }}-name
path: ${{ github.workspace }}/artifact/**/* path: ${{ github.workspace }}/artifact/**/*
@ -352,7 +375,7 @@ For environment variables created in other steps, make sure to use the `env` exp
mkdir testing mkdir testing
echo "This is a file to upload" > testing/file.txt echo "This is a file to upload" > testing/file.txt
echo "artifactPath=testing/file.txt" >> $GITHUB_ENV echo "artifactPath=testing/file.txt" >> $GITHUB_ENV
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v7
with: with:
name: artifact name: artifact
path: ${{ env.artifactPath }} # this will resolve to testing/file.txt at runtime path: ${{ env.artifactPath }} # this will resolve to testing/file.txt at runtime
@ -367,7 +390,7 @@ Artifacts are retained for 90 days by default. You can specify a shorter retenti
run: echo "I won't live long" > my_file.txt run: echo "I won't live long" > my_file.txt
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v7
with: with:
name: my-artifact name: my-artifact
path: my_file.txt path: my_file.txt
@ -383,7 +406,7 @@ If an artifact upload is successful then an `artifact-id` output is available. T
#### Example output between steps #### Example output between steps
```yml ```yml
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v7
id: artifact-upload-step id: artifact-upload-step
with: with:
name: my-artifact name: my-artifact
@ -402,7 +425,7 @@ jobs:
outputs: outputs:
output1: ${{ steps.artifact-upload-step.outputs.artifact-id }} output1: ${{ steps.artifact-upload-step.outputs.artifact-id }}
steps: steps:
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v7
id: artifact-upload-step id: artifact-upload-step
with: with:
name: my-artifact name: my-artifact
@ -428,7 +451,7 @@ jobs:
- name: Create a file - name: Create a file
run: echo "hello world" > my-file.txt run: echo "hello world" > my-file.txt
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v7
with: with:
name: my-artifact # NOTE: same artifact name name: my-artifact # NOTE: same artifact name
path: my-file.txt path: my-file.txt
@ -439,7 +462,7 @@ jobs:
- name: Create a different file - name: Create a different file
run: echo "goodbye world" > my-file.txt run: echo "goodbye world" > my-file.txt
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v7
with: with:
name: my-artifact # NOTE: same artifact name name: my-artifact # NOTE: same artifact name
path: my-file.txt path: my-file.txt
@ -455,7 +478,7 @@ Any files that contain sensitive information that should not be in the uploaded
using the `path`: using the `path`:
```yaml ```yaml
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v7
with: with:
name: my-artifact name: my-artifact
include-hidden-files: true include-hidden-files: true
@ -478,7 +501,7 @@ You may also be limited by Artifacts if you have exceeded your shared storage qu
### Zip archives ### Zip archives
When an Artifact is uploaded, all the files are assembled into an immutable Zip archive. There is currently no way to download artifacts in a format other than a Zip or to download individual artifact contents. When an Artifact is uploaded, the file(s) are assembled into an immutable Zip archive by default. If you want to upload a file uncompressed, set the flag `archive` to `false`. Currently, uncompressed upload works for one single file only. When uploading multiple files as Zip archive, there is currently no way to download individual artifact contents.
### Permission Loss ### Permission Loss
@ -491,7 +514,7 @@ If you must preserve permissions, you can `tar` all of your files together befor
run: tar -cvf my_files.tar /path/to/my/directory run: tar -cvf my_files.tar /path/to/my/directory
- name: 'Upload Artifact' - name: 'Upload Artifact'
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@@v4
with: with:
name: my-artifact name: my-artifact
path: my_files.tar path: my_files.tar