From 875b63076402f25ef9d52c294c86ba4f97810575 Mon Sep 17 00:00:00 2001 From: Rob Herley Date: Wed, 13 Dec 2023 11:55:56 -0500 Subject: [PATCH] add limitations section --- README.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/README.md b/README.md index d206876..d0b79fc 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,10 @@ See also [download-artifact](https://github.com/actions/download-artifact). - [Using Outputs](#using-outputs) - [Example output between steps](#example-output-between-steps) - [Example output between jobs](#example-output-between-jobs) + - [Limitations](#limitations) + - [Number of Artifacts](#number-of-artifacts) + - [Zip archives](#zip-archives) + - [Permission Loss](#permission-loss) - [Where does the upload go?](#where-does-the-upload-go) @@ -358,6 +362,35 @@ jobs: run: echo "Artifact ID from previous job is $OUTPUT1" ``` +## Limitations + +### Number of Artifacts + +Within an individual job, there is a limit of 10 artifacts that can be created for that job. + +You may also be limited by Artifacts if you have exceeded your shared storage quota. Storage is calculated every 6-12 hours. See [the documentation](https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions#calculating-minute-and-storage-spending) for more info. + +### 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. + +### Permission Loss + +File permissions are not maintained during artifact upload. All directories will have `755` and all files will have `644`. For example, if you make a file executable using `chmod` and then upload that file, post-download the file is no longer guaranteed to be set as an executable. + +If you must preserve permissions, you can `tar` all of your files together before artifact upload. Post download, the `tar` file will maintain file permissions and case sensitivity. + +```yaml +- name: 'Tar files' + run: tar -cvf my_files.tar /path/to/my/directory + +- name: 'Upload Artifact' + uses: actions/upload-artifact@v4 + with: + name: my-artifact + path: my_files.tar +``` + ## Where does the upload go? At the bottom of the workflow summary page, there is a dedicated section for artifacts. Here's a screenshot of something you might see: