@actions/artifact 2.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -19,7 +19,7 @@ This is the core library that powers the [`@actions/upload-artifact`](https://gi
|
|
|
19
19
|
## v2 - What's New
|
|
20
20
|
|
|
21
21
|
> [!IMPORTANT]
|
|
22
|
-
> @actions/artifact v2+, upload-artifact@v4
|
|
22
|
+
> @actions/artifact v2+, upload-artifact@v4+, and download-artifact@v4+ are not currently supported on GHES yet. The previous version of this package can be found at [this tag](https://github.com/actions/toolkit/tree/@actions/artifact@1.1.2/packages/artifact) and [on npm](https://www.npmjs.com/package/@actions/artifact/v/1.1.2).
|
|
23
23
|
|
|
24
24
|
The release of `@actions/artifact@v2` (including `upload-artifact@v4` and `download-artifact@v4`) are major changes to the backend architecture of Artifacts. They have numerous performance and behavioral improvements.
|
|
25
25
|
|
|
@@ -63,10 +63,16 @@ Import the module:
|
|
|
63
63
|
|
|
64
64
|
```js
|
|
65
65
|
// ES6 module
|
|
66
|
-
import
|
|
66
|
+
import {DefaultArtifactClient} from '@actions/artifact'
|
|
67
67
|
|
|
68
68
|
// CommonJS
|
|
69
|
-
const {
|
|
69
|
+
const {DefaultArtifactClient} = require('@actions/artifact')
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Then instantiate:
|
|
73
|
+
|
|
74
|
+
```js
|
|
75
|
+
const artifact = new DefaultArtifactClient()
|
|
70
76
|
```
|
|
71
77
|
|
|
72
78
|
ℹ️ For a comprehensive list of classes, interfaces, functions and more, see the [generated documentation](./docs/generated/README.md).
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { DownloadArtifactOptions, DownloadArtifactResponse } from '../shared/interfaces';
|
|
2
|
+
export declare function streamExtractExternal(url: string, directory: string): Promise<void>;
|
|
2
3
|
export declare function downloadArtifactPublic(artifactId: number, repositoryOwner: string, repositoryName: string, token: string, options?: DownloadArtifactOptions): Promise<DownloadArtifactResponse>;
|
|
3
4
|
export declare function downloadArtifactInternal(artifactId: number, options?: DownloadArtifactOptions): Promise<DownloadArtifactResponse>;
|
|
@@ -35,7 +35,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
35
35
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
36
|
};
|
|
37
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
exports.downloadArtifactInternal = exports.downloadArtifactPublic = void 0;
|
|
38
|
+
exports.downloadArtifactInternal = exports.downloadArtifactPublic = exports.streamExtractExternal = void 0;
|
|
39
39
|
const promises_1 = __importDefault(require("fs/promises"));
|
|
40
40
|
const github = __importStar(require("@actions/github"));
|
|
41
41
|
const core = __importStar(require("@actions/core"));
|
|
@@ -69,20 +69,57 @@ function exists(path) {
|
|
|
69
69
|
});
|
|
70
70
|
}
|
|
71
71
|
function streamExtract(url, directory) {
|
|
72
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
73
|
+
let retryCount = 0;
|
|
74
|
+
while (retryCount < 5) {
|
|
75
|
+
try {
|
|
76
|
+
yield streamExtractExternal(url, directory);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
retryCount++;
|
|
81
|
+
core.debug(`Failed to download artifact after ${retryCount} retries due to ${error.message}. Retrying in 5 seconds...`);
|
|
82
|
+
// wait 5 seconds before retrying
|
|
83
|
+
yield new Promise(resolve => setTimeout(resolve, 5000));
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
throw new Error(`Artifact download failed after ${retryCount} retries.`);
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
function streamExtractExternal(url, directory) {
|
|
72
90
|
return __awaiter(this, void 0, void 0, function* () {
|
|
73
91
|
const client = new httpClient.HttpClient((0, user_agent_1.getUserAgentString)());
|
|
74
92
|
const response = yield client.get(url);
|
|
75
93
|
if (response.message.statusCode !== 200) {
|
|
76
94
|
throw new Error(`Unexpected HTTP response from blob storage: ${response.message.statusCode} ${response.message.statusMessage}`);
|
|
77
95
|
}
|
|
96
|
+
const timeout = 30 * 1000; // 30 seconds
|
|
78
97
|
return new Promise((resolve, reject) => {
|
|
98
|
+
const timerFn = () => {
|
|
99
|
+
response.message.destroy(new Error(`Blob storage chunk did not respond in ${timeout}ms`));
|
|
100
|
+
};
|
|
101
|
+
const timer = setTimeout(timerFn, timeout);
|
|
79
102
|
response.message
|
|
103
|
+
.on('data', () => {
|
|
104
|
+
timer.refresh();
|
|
105
|
+
})
|
|
106
|
+
.on('error', (error) => {
|
|
107
|
+
core.debug(`response.message: Artifact download failed: ${error.message}`);
|
|
108
|
+
clearTimeout(timer);
|
|
109
|
+
reject(error);
|
|
110
|
+
})
|
|
80
111
|
.pipe(unzip_stream_1.default.Extract({ path: directory }))
|
|
81
|
-
.on('close',
|
|
82
|
-
|
|
112
|
+
.on('close', () => {
|
|
113
|
+
clearTimeout(timer);
|
|
114
|
+
resolve();
|
|
115
|
+
})
|
|
116
|
+
.on('error', (error) => {
|
|
117
|
+
reject(error);
|
|
118
|
+
});
|
|
83
119
|
});
|
|
84
120
|
});
|
|
85
121
|
}
|
|
122
|
+
exports.streamExtractExternal = streamExtractExternal;
|
|
86
123
|
function downloadArtifactPublic(artifactId, repositoryOwner, repositoryName, token, options) {
|
|
87
124
|
return __awaiter(this, void 0, void 0, function* () {
|
|
88
125
|
const downloadPath = yield resolveOrCreateDirectory(options === null || options === void 0 ? void 0 : options.path);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download-artifact.js","sourceRoot":"","sources":["../../../src/internal/download/download-artifact.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2DAA4B;AAC5B,wDAAyC;AACzC,oDAAqC;AACrC,iEAAkD;AAClD,gEAAgC;AAKhC,qDAAuD;AACvD,6CAAsD;AACtD,2EAA2E;AAC3E,+CAIwB;AACxB,yCAAqD;AACrD,6CAAsD;AAEtD,MAAM,oBAAoB,GAAG,CAAC,GAAW,EAAU,EAAE;IACnD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;IAC3B,MAAM,CAAC,MAAM,GAAG,EAAE,CAAA;IAClB,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAA;AAC1B,CAAC,CAAA;AAED,SAAe,MAAM,CAAC,IAAY;;QAChC,IAAI;YACF,MAAM,kBAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACrB,OAAO,IAAI,CAAA;SACZ;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAC3B,OAAO,KAAK,CAAA;aACb;iBAAM;gBACL,MAAM,KAAK,CAAA;aACZ;SACF;IACH,CAAC;CAAA;AAED,SAAe,aAAa,CAAC,GAAW,EAAE,SAAiB;;QACzD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,IAAA,+BAAkB,GAAE,CAAC,CAAA;QAC9D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"download-artifact.js","sourceRoot":"","sources":["../../../src/internal/download/download-artifact.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED