* [artifact] exempt .tar.zst files from compression
These files are already compressed with zstd - no need to attempt re-compression.
* fix missing comma
* fmt
* Update upload-gzip.ts
We moved `@actions/http-client` to be part of the toolkit in https://github.com/actions/toolkit/pull/1062. We also made some breaking changes to exported types and released v2.
The biggest change in terms of lines of code affected was to get rid of the `I-` prefix for interfaces since TypeScript doesn't follow this convention.
I bumped the patch version of all packages except for `tool-cache`, where I bumped the major version. The rationale is explained in the release notes for that package.
Seems that folk are having issues with uploading 0-byte files from
Windows agents. This effectively removes the support for Windows for
uploading from named files that, due to `isFIFO` returning `false` on
Windows for named pipes created using MSYS2's `mkfifo` command, resorted
to checking if the file size is 0 - a common trait of named pipes.
See https://github.com/actions/upload-artifact/issues/281
* Check for newlines and carriage return in artifact paths and name
* Fix linting issue
* Update comments
* Add comment about spacing
* Remove extra space
Named pipes report file size as 0, which leads to reading the whole
content into memory (0 is less than 64K). This adds additional check to
make sure that the passed in path is not a named pipe, and in that case
opts for the create-temp-file-to-gzip code path.
When running on GitHub Actions infrastructure on `windows` node, named
pipes can be created using `mkfifo` from MSYS2. In that case `fs.Stats`s
`isFIFO()` returns `false`, and not `true` as expected. This case is
detected by `process.platform` being `win32` and the passed file having
length of 0.
As a side note, when MSYS2's `mkfifo` is run, a pipe file is created:
```
prw-rw-rw- 1 User None 0 Mar 31 12:58 pipe
```
If `fs.stat` is invoked at this point `ENOENT` error will be thrown. As
soon as the pipe is written to, this pipe file is replaced by two same-
named files:
```
-rw-r--r-- 1 User None 0 Mar 31 13:00 pipe
-rw-r--r-- 1 User None 0 Mar 31 13:00 pipe
```
And at this point `fs.stat` `isFIFO()` returns `false`. Even though the
file acts as a named pipe.
* Retry all http calls for artifact upload and download
* Extra debug information
* Fix lint
* Always read response body
* PR Feedback
* Change error message if patch call fails
* Add exponential backoff when retrying
* Rework tests and add diagnostic info if exception thrown
* Fix lint
* fix lint error for real this time
* PR cleanup
* 0.5.0 @actions/artifact release
* Display diagnostic info if non-retryable code is hit
If we received 200, we will attempt to download the stream. If the
stream is gzipped, gzip should throw an error when trying to decompress
the stream; or if the stream is truncated, the received bytes should be
different from the value set in content-length header.
* Add an option to specify retention days for artifacts
* Validate against settings exposed as env var to give early feedback
* Fix lint
* Add tests and addressing feedback
* Update packages/artifact/__tests__/upload.test.ts
Co-authored-by: Konrad Pabjan <konradpabjan@github.com>
* Update packages/artifact/README.md
Co-authored-by: Konrad Pabjan <konradpabjan@github.com>
* Update packages/artifact/src/internal/utils.ts
Co-authored-by: Konrad Pabjan <konradpabjan@github.com>
* Update packages/artifact/__tests__/util.test.ts
Co-authored-by: Konrad Pabjan <konradpabjan@github.com>
Co-authored-by: Konrad Pabjan <konradpabjan@github.com>
* Add support for 429s and Exponential backoff
* Refactor status-reporter so it can be used with download and upload
* Extra logs
* Fixes around download & gzip
* Cleanup headers and add extra tests
* Improved Docs
* Spelling bloopers
* Improved error messages
* User http client version 1.0.7