Commit Graph
51 Commits
Author SHA1 Message Date
Konrad Pabjan bf445b6f6d [Artifacts] Prepare for v2.0.0 of @actions/artifact (#1479)
* Prepare for v2.0.0 of @actions/artifact

* Run prettier

* temporary disable unused vars
2023-08-03 13:34:41 -04:00
Josh Soref f0947bc28c Grammar: set up (#1241) 2023-01-19 10:57:29 -05:00
Héctor Molinero Fernández a2d9c35652 [Artifacts] Add more extensions to the gzip compression exception list (#1118)
* [Artifacts] Add more extensions to the gzip compression exception list

* [Artifacts] Test .zip extension

* Exempt .zstd files from compression
2023-01-11 15:19:28 -05:00
Konrad Pabjan 0dc29829bc Remove error annotations why retrying artifact download (#1309) 2023-01-11 13:53:41 -05:00
Eric Cornelissen b30bdaf52d Fix reject call in package artifact's upload-zip.ts (#1125) 2023-01-06 10:15:36 -05:00
Randolf J fabf684e77 fix: use stat instead of lstat (#1190) 2023-01-06 10:07:56 -05:00
Luca Casonato c8a506c94a [artifact] exempt .tar.zst files from compression (#1184)
* [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
2023-01-05 16:00:03 -05:00
Ferenc Hammerl bc3d6326f2 Fix linting 2022-12-14 16:13:28 +01:00
Ferenc Hammerl d6c0a88eeb Await finish of filestream so file is created for node16 2022-12-14 15:57:48 +01:00
Ferenc Hammerl 98e1a30696 Fix linting 2022-12-14 01:38:01 +01:00
Ferenc Hammerl 20dfba8315 Test out checking for fileexists in rmFile 2022-12-14 01:17:17 +01:00
Rob Herley 98c309c2e0 Merge branch 'main' into robherley/artifact-digest 2022-05-19 11:45:42 -04:00
Brian Cristante 547ff5737a Update other packages to use http-client v2 (#1082)
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.
2022-05-11 17:14:25 -04:00
Rob Herley d1cff5670b actually use md5 not sha256 2022-05-05 10:32:09 -04:00
Rob Herley 7bc2c5798c add md5 and use b64 for digest encodings 2022-05-05 09:26:38 -04:00
Rob Herley f6721d87d4 misc pr feedback 2022-04-27 22:24:16 +00:00
Rob Herley 202bbdbdc2 update crc header key 2022-04-27 22:22:35 +00:00
Rob Herley 66f8014402 crc: update headers & digest stream 2022-04-26 22:59:56 +00:00
Rob Herley bb08acb405 crc: move tbl out of class, more tests 2022-04-26 17:31:17 +00:00
Rob Herley 2b24c67e85 add crc64 & tests 2022-04-26 17:13:40 +00:00
Rob Herley 4b6a894ba4 add digest header for uploads 2022-04-04 17:54:15 -04:00
Zoran Regvart 9d6767c399 fix: drop support for named pipes on Windows (#962)
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
2021-12-14 15:50:50 -05:00
Konrad Pabjan 455aabdd18 [Artifacts] Prep for @actions/artifact 0.6.0 release (#958)
* actions-artifact-0.6.0 release

* Fix lint issue

* Update RELEASES.md
2021-12-06 18:39:23 -05:00
Konrad Pabjan 41b89b7ea6 [Artifacts] More detailed information for chunked uploads (#957)
* More detailed information for chunked uploads

* Run npm format
2021-12-06 16:48:14 -05:00
Konrad Pabjan 39a378198d [Artifacts] Exempt certain types of files from gzip compression (#956)
* Exempt certain types of files from gzip compression

* Fix lint issue
2021-12-06 16:47:44 -05:00
Konrad Pabjan 30feac4dc5 Check for newlines and carriage return in artifact paths and name (#951)
* Check for newlines and carriage return in artifact paths and name

* Fix linting issue

* Update comments

* Add comment about spacing

* Remove extra space
2021-12-01 16:31:37 -05:00
Konrad Pabjanandcampersau bf144288cb Updates to logging for artifact uploads (#949)
* More details logs during artifact upload

* extra logging

* Updates to artifact logging + clarifications around upload size

* Fix linting errors

* Update packages/artifact/src/internal/artifact-client.ts

Co-authored-by: campersau <buchholz.bastian@googlemail.com>

Co-authored-by: campersau <buchholz.bastian@googlemail.com>
2021-11-30 12:53:24 -05:00
campersau a85e73c3eb Reset processedCount when downloading all artifacts (#889) 2021-11-29 17:28:03 -05:00
Zoran Regvart b34bb89807 Support upload from named pipes (#748)
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.
2021-11-29 17:19:02 -05:00
Brian Cristante 77d96ef7df Retry artifact uploads on HTTP 500 (#833)
* Retry on 500

* bump package version

* fix tests

* Remove spurious change

* fix another test

* Roll back package version
2021-06-04 17:09:30 -04:00
Thomas Boop ef0fa675fa Re-enable the audit tools step and update dependencies (#815)
* update package versions

* run audit

* fix eslint config

* linter updates

* re-enable audit

* update timeouts test

* pass done into callback

* fix format
2021-05-21 09:19:40 -04:00
Konrad Pabjan cf1d64fd9e Retry all http calls for artifact upload and download (#675)
* 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
2020-12-18 21:40:50 +01:00
Yang CaoandChris Sidi 6f33e4c7b0 Close destination steam before reject
Co-authored-by: Chris Sidi <hashtagchris@github.com>
2020-12-04 11:03:17 -05:00
Yang Cao 760a39afb9 Try close stream before unlink 2020-12-03 13:34:59 -05:00
Yang Cao bd9c0f996d Always print skip validation log 2020-12-03 13:09:43 -05:00
Yang Cao 1e10fa415c Add some debugging statements 2020-12-03 12:40:37 -05:00
Yang Cao 09e68f92cd More styling fix 2020-12-03 10:57:04 -05:00
Yang Cao 8f05cccf8e Fix styling 2020-12-03 10:33:10 -05:00
Yang Cao 9d3d4bec1b Adding retry when we received 200
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.
2020-12-03 10:15:12 -05:00
Chris Sidi 61e11bd168 More error handling 2020-12-03 10:12:44 -05:00
Chris Sidi d26929d028 Retry artifact download when response stream is truncated 2020-12-03 10:12:44 -05:00
Yang CaoandKonrad Pabjan da436eaab9 Add an option to specify retention days for artifacts (#575)
* 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>
2020-09-18 11:30:00 -04:00
Konrad Pabjan 975f43d6c7 Retry on 413 (#540) 2020-08-04 16:57:38 +02:00
Konrad Pabjan e8b9b29050 Better Artifact Telemetry + Increase Upload chunk size (#535)
* Differentiate user-agents for better internal telemetry

* Bump chunk size from 4 to 8 MB

* Update User-Agent Strings
2020-07-30 17:23:28 +02:00
Konrad Pabjan 65a1e4334c Correctly reset chunk during artifact upload on retry (#458)
* Correctly reset chunk during artifact upload on retry

* Update workflow

* Implementation details around the passthrough stream
2020-05-14 22:18:21 +02:00
Konrad PabjanandJosh Gross 6a22ed8a90 artifact header cleanup (#441)
* Update NPM packages for @actions/artifact

* Clarifications around headers

* Revert NPM updates

* Apply suggestions from code review

Co-authored-by: Josh Gross <joshmgross@github.com>

Co-authored-by: Josh Gross <joshmgross@github.com>
2020-05-12 17:48:36 +02:00
Konrad Pabjan fc8de62ae1 @actions/artifact 0.3.1 update (#420)
* Updates to 0.3.1 package update
2020-04-20 22:58:53 +02:00
Pierre Grimaud ad730db8dc Fix typos (#417) 2020-04-20 12:56:03 +02:00
Konrad Pabjan 0eb6f58b7e @actions/artifact package updates (#408)
* Clear error message when storage quota has been hit

* Improved download of empty files

* Extra info to RELEASES.md

* PR Feedback
2020-04-09 17:14:12 +02:00
Konrad Pabjan 9afb95c7e8 Updates to @actions/artifact (#396)
* 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
2020-04-08 16:55:18 +02:00