@terascope/scripts 2.20.0 → 2.21.0
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/dist/src/helpers/bump/index.js +1 -1
- package/dist/src/helpers/bump/index.js.map +1 -1
- package/dist/src/helpers/certs.d.ts +28 -0
- package/dist/src/helpers/certs.d.ts.map +1 -0
- package/dist/src/helpers/certs.js +267 -0
- package/dist/src/helpers/certs.js.map +1 -0
- package/dist/src/helpers/doc-builder/index.js +1 -1
- package/dist/src/helpers/doc-builder/index.js.map +1 -1
- package/dist/src/helpers/docker.d.ts +78 -0
- package/dist/src/helpers/docker.d.ts.map +1 -0
- package/dist/src/helpers/docker.js +395 -0
- package/dist/src/helpers/docker.js.map +1 -0
- package/dist/src/helpers/exec.d.ts +19 -0
- package/dist/src/helpers/exec.d.ts.map +1 -0
- package/dist/src/helpers/exec.js +81 -0
- package/dist/src/helpers/exec.js.map +1 -0
- package/dist/src/helpers/git.d.ts +4 -0
- package/dist/src/helpers/git.d.ts.map +1 -0
- package/dist/src/helpers/git.js +47 -0
- package/dist/src/helpers/git.js.map +1 -0
- package/dist/src/helpers/helm.d.ts +25 -0
- package/dist/src/helpers/helm.d.ts.map +1 -0
- package/dist/src/helpers/helm.js +297 -0
- package/dist/src/helpers/helm.js.map +1 -0
- package/dist/src/helpers/images/index.js +1 -1
- package/dist/src/helpers/images/index.js.map +1 -1
- package/dist/src/helpers/k8s-env/index.d.ts.map +1 -1
- package/dist/src/helpers/k8s-env/index.js +5 -2
- package/dist/src/helpers/k8s-env/index.js.map +1 -1
- package/dist/src/helpers/kubernetes.d.ts +10 -0
- package/dist/src/helpers/kubernetes.d.ts.map +1 -0
- package/dist/src/helpers/kubernetes.js +160 -0
- package/dist/src/helpers/kubernetes.js.map +1 -0
- package/dist/src/helpers/misc.d.ts +9 -5
- package/dist/src/helpers/misc.d.ts.map +1 -1
- package/dist/src/helpers/misc.js +68 -13
- package/dist/src/helpers/misc.js.map +1 -1
- package/dist/src/helpers/package-manager.d.ts +18 -0
- package/dist/src/helpers/package-manager.d.ts.map +1 -0
- package/dist/src/helpers/package-manager.js +152 -0
- package/dist/src/helpers/package-manager.js.map +1 -0
- package/dist/src/helpers/packages.js +1 -1
- package/dist/src/helpers/packages.js.map +1 -1
- package/dist/src/helpers/publish/index.d.ts.map +1 -1
- package/dist/src/helpers/publish/index.js +2 -1
- package/dist/src/helpers/publish/index.js.map +1 -1
- package/dist/src/helpers/publish/utils.d.ts.map +1 -1
- package/dist/src/helpers/publish/utils.js +2 -1
- package/dist/src/helpers/publish/utils.js.map +1 -1
- package/dist/src/helpers/sync/utils.js +1 -1
- package/dist/src/helpers/sync/utils.js.map +1 -1
- package/dist/src/helpers/test-runner/index.d.ts.map +1 -1
- package/dist/src/helpers/test-runner/index.js +5 -1
- package/dist/src/helpers/test-runner/index.js.map +1 -1
- package/dist/src/helpers/test-runner/services.d.ts.map +1 -1
- package/dist/src/helpers/test-runner/services.js +11 -5
- package/dist/src/helpers/test-runner/services.js.map +1 -1
- package/dist/src/helpers/test-runner/utils.d.ts +1 -1
- package/dist/src/helpers/test-runner/utils.d.ts.map +1 -1
- package/dist/src/helpers/test-runner/utils.js +3 -2
- package/dist/src/helpers/test-runner/utils.js.map +1 -1
- package/dist/src/index.d.ts +7 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +7 -1
- package/dist/src/index.js.map +1 -1
- package/package.json +3 -3
- package/dist/src/helpers/scripts.d.ts +0 -174
- package/dist/src/helpers/scripts.d.ts.map +0 -1
- package/dist/src/helpers/scripts.js +0 -1404
- package/dist/src/helpers/scripts.js.map +0 -1
|
@@ -0,0 +1,395 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { execa, execaCommand } from 'execa';
|
|
4
|
+
import ms from 'ms';
|
|
5
|
+
import got from 'got';
|
|
6
|
+
import fse from 'fs-extra';
|
|
7
|
+
import { isString, TSError, pWhile, pDelay } from '@terascope/core-utils';
|
|
8
|
+
import { exec, fork } from './exec.js';
|
|
9
|
+
import config from './config.js';
|
|
10
|
+
import signale from './signale.js';
|
|
11
|
+
import { getRootDir } from './misc.js';
|
|
12
|
+
export async function dockerPull(image, timeout = 0) {
|
|
13
|
+
try {
|
|
14
|
+
await exec({
|
|
15
|
+
cmd: 'docker',
|
|
16
|
+
args: ['pull', image],
|
|
17
|
+
timeout,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
catch (err) {
|
|
21
|
+
process.exitCode = 0;
|
|
22
|
+
throw err;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export async function dockerStop(name) {
|
|
26
|
+
await exec({
|
|
27
|
+
cmd: 'docker',
|
|
28
|
+
args: ['stop', name],
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
export async function dockerTag(from, to) {
|
|
32
|
+
signale.pending(`Tagging image ${from} as ${to}`);
|
|
33
|
+
await exec({
|
|
34
|
+
cmd: 'docker',
|
|
35
|
+
args: ['tag', from, to],
|
|
36
|
+
});
|
|
37
|
+
signale.success(`Image ${from} re-tagged as ${to}`);
|
|
38
|
+
}
|
|
39
|
+
export async function getNodeVersionFromImage(image) {
|
|
40
|
+
try {
|
|
41
|
+
const { stdout } = await execa('docker', ['run', image, 'node', '-v']);
|
|
42
|
+
return stdout;
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
throw new Error(`Unable to get node version from image due to Error: ${err}`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
export async function getContainerInfo(name) {
|
|
49
|
+
const result = await exec({
|
|
50
|
+
cmd: 'docker',
|
|
51
|
+
args: ['ps', '--format={{json .}}', `--filter=name=${name}`],
|
|
52
|
+
});
|
|
53
|
+
if (!result)
|
|
54
|
+
return null;
|
|
55
|
+
return JSON.parse(result);
|
|
56
|
+
}
|
|
57
|
+
export async function dockerNetworkExists(name) {
|
|
58
|
+
const subprocess = await execaCommand(`docker network ls --format='{{json .Name}}' | grep '"${name}"'`, { reject: false, shell: true });
|
|
59
|
+
return subprocess.exitCode ? subprocess.exitCode > 0 : false;
|
|
60
|
+
}
|
|
61
|
+
export async function remoteDockerImageExists(image) {
|
|
62
|
+
try {
|
|
63
|
+
await dockerPull(image, ms('30s'));
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
catch (err) {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
export async function dockerRun(opt, tag, ignoreMount, debug) {
|
|
71
|
+
const args = ['run', '--rm'];
|
|
72
|
+
if (!opt.image) {
|
|
73
|
+
throw new Error('Missing required image option');
|
|
74
|
+
}
|
|
75
|
+
if (!opt.name) {
|
|
76
|
+
throw new Error('Missing required name option');
|
|
77
|
+
}
|
|
78
|
+
if (opt.mount && !ignoreMount) {
|
|
79
|
+
for (const mount of opt.mount) {
|
|
80
|
+
args.push('--mount', mount);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
if (opt.ports && opt.ports.length) {
|
|
84
|
+
opt.ports.forEach((port) => {
|
|
85
|
+
if (isString(port)) {
|
|
86
|
+
args.push('--publish', port);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
args.push('--publish', `${port}:${port}`);
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
if (opt.env) {
|
|
94
|
+
Object.entries(opt.env).forEach(([key, val]) => {
|
|
95
|
+
args.push('--env', `${key}=${val}`);
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
if (opt.tmpfs && opt.tmpfs.length) {
|
|
99
|
+
args.push('--tmpfs', opt.tmpfs.join(','));
|
|
100
|
+
}
|
|
101
|
+
if (opt.network) {
|
|
102
|
+
const exists = await dockerNetworkExists(opt.network);
|
|
103
|
+
if (!exists) {
|
|
104
|
+
throw new Error(`Docker network ${opt.network} does not exist`);
|
|
105
|
+
}
|
|
106
|
+
args.push('--network', opt.network);
|
|
107
|
+
}
|
|
108
|
+
args.push('--name', opt.name);
|
|
109
|
+
args.push(`${opt.image}:${tag ?? 'latest'}`);
|
|
110
|
+
if (opt.args) {
|
|
111
|
+
args.push(...opt.args);
|
|
112
|
+
}
|
|
113
|
+
let error;
|
|
114
|
+
let stderr;
|
|
115
|
+
let done = true;
|
|
116
|
+
if (debug) {
|
|
117
|
+
signale.debug(`executing: docker ${args.join(' ')}`);
|
|
118
|
+
}
|
|
119
|
+
const subprocess = execa('docker', args);
|
|
120
|
+
if (!subprocess || !subprocess.stderr) {
|
|
121
|
+
throw new Error('Failed to execute docker run');
|
|
122
|
+
}
|
|
123
|
+
(async () => {
|
|
124
|
+
done = false;
|
|
125
|
+
try {
|
|
126
|
+
const result = await subprocess;
|
|
127
|
+
if (result.exitCode && result.exitCode > 0) {
|
|
128
|
+
stderr = result.all;
|
|
129
|
+
error = new Error(`${result.command} failed`);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
catch (err) {
|
|
133
|
+
if (err.failed) {
|
|
134
|
+
error = err.stderr;
|
|
135
|
+
}
|
|
136
|
+
error = err.stack;
|
|
137
|
+
stderr = err.all;
|
|
138
|
+
}
|
|
139
|
+
finally {
|
|
140
|
+
done = true;
|
|
141
|
+
}
|
|
142
|
+
})();
|
|
143
|
+
const upFor = ms('3s');
|
|
144
|
+
await pWhile(() => dockerContainerReady(opt.name, upFor, error), {
|
|
145
|
+
name: `Docker container up for 2m (${opt.name})`,
|
|
146
|
+
timeoutMs: ms('2m')
|
|
147
|
+
});
|
|
148
|
+
if (error) {
|
|
149
|
+
if (stderr) {
|
|
150
|
+
process.stderr.write(stderr);
|
|
151
|
+
}
|
|
152
|
+
throw error;
|
|
153
|
+
}
|
|
154
|
+
if (done) {
|
|
155
|
+
throw new Error('Service ended early');
|
|
156
|
+
}
|
|
157
|
+
return () => {
|
|
158
|
+
if (error) {
|
|
159
|
+
if (stderr) {
|
|
160
|
+
process.stderr.write(stderr);
|
|
161
|
+
}
|
|
162
|
+
signale.error(error);
|
|
163
|
+
}
|
|
164
|
+
if (done && !subprocess.killed)
|
|
165
|
+
return;
|
|
166
|
+
subprocess.kill();
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
export async function dockerContainerReady(name, upFor, error) {
|
|
170
|
+
if (error)
|
|
171
|
+
throw new TSError(error);
|
|
172
|
+
try {
|
|
173
|
+
const result = await exec({
|
|
174
|
+
cmd: 'docker',
|
|
175
|
+
args: [
|
|
176
|
+
'ps', '--format', '"{{json .Status}}"', '--filter', `name=${name}`
|
|
177
|
+
]
|
|
178
|
+
});
|
|
179
|
+
const timeup = ms(result.replace(/[(Up)\s"]+|/ig, ''));
|
|
180
|
+
if (!timeup)
|
|
181
|
+
return false;
|
|
182
|
+
return timeup >= upFor;
|
|
183
|
+
}
|
|
184
|
+
catch (err) {
|
|
185
|
+
await pDelay(1000);
|
|
186
|
+
return false;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
export async function dockerBuild(tag, cacheFrom, target, buildArgs, dockerFileName, dockerFilePath) {
|
|
190
|
+
const cacheFromArgs = [];
|
|
191
|
+
cacheFrom?.forEach((image) => {
|
|
192
|
+
cacheFromArgs.push('--cache-from', image);
|
|
193
|
+
});
|
|
194
|
+
const targetArgs = target ? ['--target', target] : [];
|
|
195
|
+
const buildsArgs = buildArgs
|
|
196
|
+
? ['--build-arg', ...buildArgs.join(',--build-arg,').split(',')]
|
|
197
|
+
: [];
|
|
198
|
+
const fileName = dockerFileName ? ['-f', dockerFileName] : [];
|
|
199
|
+
const filePath = dockerFilePath ?? '.';
|
|
200
|
+
await fork({
|
|
201
|
+
cmd: 'docker',
|
|
202
|
+
args: ['build', ...cacheFromArgs, ...targetArgs, ...buildsArgs, '--tag', tag, ...fileName, filePath],
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
export async function dockerPush(image) {
|
|
206
|
+
const subprocess = await execaCommand(`docker push ${image}`, { reject: false });
|
|
207
|
+
if (subprocess.exitCode !== 0) {
|
|
208
|
+
throw new Error(`Unable to push docker image ${image}, ${subprocess.stderr}`);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
export async function dockerExec(containerName, command) {
|
|
212
|
+
const args = ['exec', containerName, ...command];
|
|
213
|
+
signale.debug(`executing: docker ${args.join(' ')}`);
|
|
214
|
+
const subprocess = await execa('docker', args, { stdio: 'pipe' });
|
|
215
|
+
if (subprocess.exitCode !== 0) {
|
|
216
|
+
throw new Error(`Docker exec to container ${containerName} failed, ${subprocess.stderr}`);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
async function dockerImageRm(image) {
|
|
220
|
+
const subprocess = await execaCommand(`docker image rm ${image}`, { reject: false });
|
|
221
|
+
if (subprocess.exitCode !== 0) {
|
|
222
|
+
throw new Error(`Unable to remove docker image ${image}, ${subprocess.stderr}`);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Unzips and loads a Docker image from a Docker cache
|
|
227
|
+
* If successful and skipDelete is false the image will be deleted from the cache
|
|
228
|
+
* @param {string} imageName Name of the image to load
|
|
229
|
+
* @param {boolean} skipDelete Skip removal of docker image from cache
|
|
230
|
+
* @returns {Promise<boolean>} Whether or not the image loaded successfully
|
|
231
|
+
*/
|
|
232
|
+
export async function loadThenDeleteImageFromCache(imageName, skipDelete = false) {
|
|
233
|
+
signale.time(`unzip and load ${imageName}`);
|
|
234
|
+
const fileName = imageName.trim().replace(/[/:]/g, '_');
|
|
235
|
+
const filePath = path.join(config.DOCKER_CACHE_PATH, `${fileName}.tar.gz`);
|
|
236
|
+
if (!fs.existsSync(filePath)) {
|
|
237
|
+
signale.error(`No file found at ${filePath}. Have you restored the cache?`);
|
|
238
|
+
return false;
|
|
239
|
+
}
|
|
240
|
+
const result = await execaCommand(`gunzip -c ${filePath} | docker load`, { shell: true });
|
|
241
|
+
signale.info('Result: ', result);
|
|
242
|
+
if (result.exitCode !== 0) {
|
|
243
|
+
signale.error(`Error loading ${filePath} to docker`);
|
|
244
|
+
return false;
|
|
245
|
+
}
|
|
246
|
+
if (!skipDelete) {
|
|
247
|
+
signale.info(`Deleting ${imageName} from docker image cache.`);
|
|
248
|
+
fs.rmSync(filePath);
|
|
249
|
+
}
|
|
250
|
+
signale.timeEnd(`unzip and load ${imageName}`);
|
|
251
|
+
return true;
|
|
252
|
+
}
|
|
253
|
+
export async function deleteDockerImageCache() {
|
|
254
|
+
signale.info(`Deleting Docker image cache at ${config.DOCKER_CACHE_PATH}`);
|
|
255
|
+
fse.removeSync(config.DOCKER_CACHE_PATH);
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Save a docker image as a tar.gz to a local directory.
|
|
259
|
+
* Then remove the image from docker
|
|
260
|
+
* @param {string} imageName Name of image to pull and save
|
|
261
|
+
* @param {string} imageSavePath Location where image will be saved and compressed.
|
|
262
|
+
* @returns void
|
|
263
|
+
*/
|
|
264
|
+
export async function saveAndZip(imageName, imageSavePath) {
|
|
265
|
+
signale.info(`Saving Docker image: ${imageName}`);
|
|
266
|
+
const fileName = imageName.replace(/[/:]/g, '_');
|
|
267
|
+
const filePath = path.join(imageSavePath, `${fileName}.tar`);
|
|
268
|
+
const command = `docker save ${imageName} | gzip > ${filePath}.gz`;
|
|
269
|
+
await execaCommand(command, { shell: true });
|
|
270
|
+
await dockerImageRm(imageName);
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Extracts the base Docker image information from the top-level Dockerfile
|
|
274
|
+
*
|
|
275
|
+
* This function parses the Dockerfile to determine the base image name,
|
|
276
|
+
* node version, registry, and repository.
|
|
277
|
+
*
|
|
278
|
+
* @throws {TSError} If the Dockerfile cannot be read or the base image format is unexpected.
|
|
279
|
+
* @returns {{
|
|
280
|
+
* name: string;
|
|
281
|
+
* tag: string;
|
|
282
|
+
* registry: string;
|
|
283
|
+
* repo: string;
|
|
284
|
+
* }} An object containing:
|
|
285
|
+
* - `name: Full base image name
|
|
286
|
+
* - `tag`: Node version used in the image
|
|
287
|
+
* - `registry`: Docker registry (defaults to `docker.io` if not specified)
|
|
288
|
+
* - `repo`: Repository name including organization
|
|
289
|
+
*/
|
|
290
|
+
export function getDockerBaseImageInfo() {
|
|
291
|
+
try {
|
|
292
|
+
const dockerFilePath = path.join(getRootDir(), 'Dockerfile');
|
|
293
|
+
const dockerfileContent = fs.readFileSync(dockerFilePath, 'utf8');
|
|
294
|
+
// Grab the "ARG NODE_VERSION" line in the Dockerfile
|
|
295
|
+
const nodeVersionDefault = dockerfileContent.match(/^ARG NODE_VERSION=(\d+)/m);
|
|
296
|
+
if (nodeVersionDefault) {
|
|
297
|
+
return {
|
|
298
|
+
name: `node`,
|
|
299
|
+
tag: `${nodeVersionDefault[1]}-alpine`,
|
|
300
|
+
registry: 'docker.io',
|
|
301
|
+
repo: 'library'
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
else {
|
|
305
|
+
throw new TSError('Failed to parse Dockerfile for base image.');
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
catch (err) {
|
|
309
|
+
throw new TSError(`Failed to read top-level Dockerfile to get base image.\n${err}`);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Retrieves the Node.js version from the base Docker image specified in the Teraslice `Dockerfile`.
|
|
314
|
+
*
|
|
315
|
+
* This function:
|
|
316
|
+
* - Extracts the base image details from the `Dockerfile`
|
|
317
|
+
* - Authenticates with the container registry to retrieve a token
|
|
318
|
+
* - Fetches the image manifest and configuration
|
|
319
|
+
* - Extracts the `node_version` label from the image config
|
|
320
|
+
*
|
|
321
|
+
* @throws {TSError} If any request to the registry fails or expected data is missing.
|
|
322
|
+
* @returns {Promise<string>} Resolves with the Node.js version string.
|
|
323
|
+
*/
|
|
324
|
+
export async function grabCurrentTSNodeVersion() {
|
|
325
|
+
// Extract base image details from the Dockerfile
|
|
326
|
+
const baseImage = getDockerBaseImageInfo();
|
|
327
|
+
let token;
|
|
328
|
+
// Request authentication token for accessing image manifests
|
|
329
|
+
try {
|
|
330
|
+
const authUrl = 'https://auth.docker.io/token?service=registry.docker.io&scope=repository:library/node:pull';
|
|
331
|
+
const authResponse = await got(authUrl);
|
|
332
|
+
token = JSON.parse(authResponse.body).token;
|
|
333
|
+
}
|
|
334
|
+
catch (err) {
|
|
335
|
+
throw new TSError(`Unable to retrieve token from ${baseImage.registry} for repo ${baseImage.repo}:\n${err}`);
|
|
336
|
+
}
|
|
337
|
+
// Grab the manifest list to find the right architecture digest
|
|
338
|
+
let manifestDigest;
|
|
339
|
+
try {
|
|
340
|
+
const manifestUrl = `https://registry-1.docker.io/v2/library/node/manifests/${baseImage.tag}`;
|
|
341
|
+
const response = await got(manifestUrl, {
|
|
342
|
+
headers: {
|
|
343
|
+
Authorization: `Bearer ${token}`,
|
|
344
|
+
},
|
|
345
|
+
responseType: 'json'
|
|
346
|
+
});
|
|
347
|
+
const body = response.body;
|
|
348
|
+
const amd64Manifest = body.manifests.find((manifest) => manifest.platform.architecture === 'amd64');
|
|
349
|
+
if (!amd64Manifest) {
|
|
350
|
+
throw new TSError(`No amd64 manifest found for ${baseImage.repo}:${baseImage.tag}`);
|
|
351
|
+
}
|
|
352
|
+
manifestDigest = amd64Manifest.digest;
|
|
353
|
+
}
|
|
354
|
+
catch (err) {
|
|
355
|
+
throw new TSError(`Unable to retrieve image manifest list from ${baseImage.registry} for ${baseImage.repo}:${baseImage.tag}:\n${err}`);
|
|
356
|
+
}
|
|
357
|
+
let configManifest;
|
|
358
|
+
try {
|
|
359
|
+
const manifestUrl = `https://registry-1.docker.io/v2/library/node/manifests/${manifestDigest}`;
|
|
360
|
+
const response = await got(manifestUrl, {
|
|
361
|
+
headers: {
|
|
362
|
+
Authorization: `Bearer ${token}`,
|
|
363
|
+
},
|
|
364
|
+
responseType: 'json'
|
|
365
|
+
});
|
|
366
|
+
const manifestList = response.body;
|
|
367
|
+
configManifest = manifestList.config.digest;
|
|
368
|
+
if (!configManifest) {
|
|
369
|
+
throw new TSError(`No config digest found for ${baseImage.repo}:${baseImage.tag}`);
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
catch (err) {
|
|
373
|
+
throw new TSError(`Unable to retrieve image manifest list from ${baseImage.registry} for ${baseImage.repo}:${baseImage.tag}:\n${err}`);
|
|
374
|
+
}
|
|
375
|
+
// Retrieve the image configuration and extract the Node.js version label
|
|
376
|
+
try {
|
|
377
|
+
const configUrl = `https://registry-1.docker.io/v2/library/node/blobs/${configManifest}`;
|
|
378
|
+
const response = await got(configUrl, {
|
|
379
|
+
headers: {
|
|
380
|
+
Authorization: `Bearer ${token}`,
|
|
381
|
+
},
|
|
382
|
+
responseType: 'json'
|
|
383
|
+
});
|
|
384
|
+
const imageConfig = response.body;
|
|
385
|
+
const nodeVersion = imageConfig.config?.Env?.find((envVar) => envVar.startsWith('NODE_VERSION='))?.split('=')[1];
|
|
386
|
+
if (!nodeVersion) {
|
|
387
|
+
throw new TSError(`Node version label missing in config for ${baseImage.repo}:${baseImage.tag}`);
|
|
388
|
+
}
|
|
389
|
+
return nodeVersion;
|
|
390
|
+
}
|
|
391
|
+
catch (err) {
|
|
392
|
+
throw new TSError(`Unable to grab image config from ${baseImage.registry} for ${baseImage.repo}:${baseImage.tag}:\n${err}`);
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
//# sourceMappingURL=docker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../../src/helpers/docker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { TestEnv } from '@terascope/types';
|
|
2
|
+
import { TSCommands } from './interfaces.js';
|
|
3
|
+
export type ExecEnv<T extends TestEnv = TestEnv> = T & {
|
|
4
|
+
[name: string]: any;
|
|
5
|
+
};
|
|
6
|
+
type ExecOpts<T extends TestEnv = TestEnv> = {
|
|
7
|
+
cmd: string;
|
|
8
|
+
args?: string[];
|
|
9
|
+
cwd?: string;
|
|
10
|
+
env?: ExecEnv<T>;
|
|
11
|
+
stdio?: 'inherit';
|
|
12
|
+
timeout?: number;
|
|
13
|
+
detached?: boolean;
|
|
14
|
+
};
|
|
15
|
+
export declare function exec<T extends TestEnv = TestEnv>(opts: ExecOpts<T>, log?: boolean): Promise<string>;
|
|
16
|
+
export declare function fork(opts: ExecOpts): Promise<void>;
|
|
17
|
+
export declare function runTSScript(cmd: TSCommands, args: string[]): Promise<void>;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=exec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../../src/helpers/exec.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAG3C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,IACzC,CAAC,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAAC;AAClC,KAAK,QAAQ,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,IAAI;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAiCF,wBAAsB,IAAI,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,EAClD,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,UAAO,GAC9B,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED,wBAAsB,IAAI,CACtB,IAAI,EAAE,QAAQ,GACf,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAMhF"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { execa } from 'execa';
|
|
2
|
+
import { debugLogger } from '@terascope/core-utils';
|
|
3
|
+
import { getRootDir } from './misc.js';
|
|
4
|
+
import config from './config.js';
|
|
5
|
+
const logger = debugLogger('ts-scripts:cmd');
|
|
6
|
+
function _exec(opts) {
|
|
7
|
+
let subprocess;
|
|
8
|
+
const options = {
|
|
9
|
+
cwd: opts.cwd || getRootDir(),
|
|
10
|
+
env: opts.env,
|
|
11
|
+
preferLocal: true,
|
|
12
|
+
detached: opts.detached,
|
|
13
|
+
timeout: opts.timeout,
|
|
14
|
+
stdio: opts.stdio,
|
|
15
|
+
};
|
|
16
|
+
logger.debug('executing command', opts);
|
|
17
|
+
if (opts.args && opts.args.length) {
|
|
18
|
+
subprocess = execa(opts.cmd, opts.args, options);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
subprocess = execa(opts.cmd, options);
|
|
22
|
+
}
|
|
23
|
+
if (!subprocess) {
|
|
24
|
+
throw new Error(`Failed to execution ${opts.cmd}`);
|
|
25
|
+
}
|
|
26
|
+
if (!opts.stdio) {
|
|
27
|
+
if (!subprocess.stderr || !subprocess.stdout) {
|
|
28
|
+
throw new Error(`Command ${opts.cmd} failed, stderr or stdout is not available`);
|
|
29
|
+
}
|
|
30
|
+
subprocess.stderr.pipe(process.stderr);
|
|
31
|
+
}
|
|
32
|
+
return subprocess;
|
|
33
|
+
}
|
|
34
|
+
export async function exec(opts, log = true) {
|
|
35
|
+
try {
|
|
36
|
+
const env = { FORCE_COLOR: '0', ...opts.env };
|
|
37
|
+
const _opts = { ...opts };
|
|
38
|
+
_opts.env = env;
|
|
39
|
+
const subprocess = _exec(_opts);
|
|
40
|
+
const { stdout } = await subprocess;
|
|
41
|
+
if (typeof stdout !== 'string') {
|
|
42
|
+
throw new Error('exec() requires ExecOpts that result in a stdout string. See the execa docs for details.');
|
|
43
|
+
}
|
|
44
|
+
const result = stdout.trim();
|
|
45
|
+
logger.debug(`exec result: ${opts.cmd} ${(opts.args || []).join(' ')}`, log && result);
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
if (!err.command) {
|
|
50
|
+
throw err;
|
|
51
|
+
}
|
|
52
|
+
process.exitCode = err.exitCode || 1;
|
|
53
|
+
throw new Error(err.message);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
export async function fork(opts) {
|
|
57
|
+
try {
|
|
58
|
+
const env = {
|
|
59
|
+
FORCE_COLOR: config.FORCE_COLOR,
|
|
60
|
+
...opts.env
|
|
61
|
+
};
|
|
62
|
+
const _opts = { stdio: 'inherit', ...opts };
|
|
63
|
+
_opts.env = env;
|
|
64
|
+
await _exec(_opts);
|
|
65
|
+
}
|
|
66
|
+
catch (err) {
|
|
67
|
+
if (!err.command) {
|
|
68
|
+
throw err;
|
|
69
|
+
}
|
|
70
|
+
process.exitCode = err.exitCode || 1;
|
|
71
|
+
throw new Error(err.message);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
export async function runTSScript(cmd, args) {
|
|
75
|
+
const scriptName = process.argv[1];
|
|
76
|
+
return fork({
|
|
77
|
+
cmd: scriptName,
|
|
78
|
+
args: [cmd, ...args],
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=exec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../../src/helpers/exec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../src/helpers/git.ts"],"names":[],"mappings":"AAMA,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAOrD;AAED,wBAAsB,OAAO,CAAC,KAAK,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAQjE;AAED,wBAAsB,eAAe,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAqB3E"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { debugLogger } from '@terascope/core-utils';
|
|
2
|
+
import { exec, fork } from './exec.js';
|
|
3
|
+
import config from './config.js';
|
|
4
|
+
const logger = debugLogger('ts-scripts:cmd');
|
|
5
|
+
export async function getCommitHash() {
|
|
6
|
+
if (process.env.GIT_COMMIT_HASH)
|
|
7
|
+
return process.env.GIT_COMMIT_HASH;
|
|
8
|
+
if (config.SKIP_GIT_COMMANDS) {
|
|
9
|
+
throw new Error('Unable to determine git commit hash when env.SKIP_GIT_COMMANDS is set, set env.GIT_COMMIT_HASH to fix this');
|
|
10
|
+
}
|
|
11
|
+
return exec({ cmd: 'git', args: ['rev-parse', '--short', 'HEAD'] });
|
|
12
|
+
}
|
|
13
|
+
export async function gitDiff(files = []) {
|
|
14
|
+
if (config.SKIP_GIT_COMMANDS)
|
|
15
|
+
return;
|
|
16
|
+
try {
|
|
17
|
+
await fork({ cmd: 'git', args: ['diff', ...files] });
|
|
18
|
+
}
|
|
19
|
+
catch (e) {
|
|
20
|
+
process.exitCode = 0;
|
|
21
|
+
logger.warn(e);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export async function getChangedFiles(...files) {
|
|
25
|
+
if (config.SKIP_GIT_COMMANDS)
|
|
26
|
+
return [];
|
|
27
|
+
try {
|
|
28
|
+
const result = await exec({
|
|
29
|
+
cmd: 'git', args: ['diff', '--name-only', ...files]
|
|
30
|
+
});
|
|
31
|
+
return result
|
|
32
|
+
.split('\n')
|
|
33
|
+
.map((str) => str.trim())
|
|
34
|
+
.filter(Boolean);
|
|
35
|
+
}
|
|
36
|
+
catch (e) {
|
|
37
|
+
// if there error includes ENOENT
|
|
38
|
+
// we can just log the error and continue on
|
|
39
|
+
if (e.toString().includes('ENOENT')) {
|
|
40
|
+
process.exitCode = 0;
|
|
41
|
+
logger.warn(e);
|
|
42
|
+
return [];
|
|
43
|
+
}
|
|
44
|
+
throw e;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=git.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/helpers/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,MAAM,MAAM,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,aAAa;IAC/B,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAEpE,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,4GAA4G,CAAC,CAAC;IAClI,CAAC;IACD,OAAO,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,QAAkB,EAAE;IAC9C,IAAI,MAAM,CAAC,iBAAiB;QAAE,OAAO;IACrC,IAAI,CAAC;QACD,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAG,KAAe;IACpD,IAAI,MAAM,CAAC,iBAAiB;QAAE,OAAO,EAAE,CAAC;IAExC,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC;YACtB,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;SACtD,CAAC,CAAC;QACH,OAAO,MAAM;aACR,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;aACxB,MAAM,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,iCAAiC;QACjC,4CAA4C;QAC5C,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACf,OAAO,EAAE,CAAC;QACd,CAAC;QACD,MAAM,CAAC,CAAC;IACZ,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export declare function helmfileDestroy(selector: string): Promise<void>;
|
|
2
|
+
export declare function helmfileCommand(command: string, clusteringType: 'kubernetesV2', devMode?: boolean, logs?: boolean, e2e?: boolean): Promise<void>;
|
|
3
|
+
export declare function launchTerasliceWithHelmfile(clusteringType: 'kubernetesV2', devMode?: boolean, logs?: boolean, debug?: boolean, e2e?: boolean): Promise<void>;
|
|
4
|
+
export declare function launchTerasliceWithCustomHelmfile(configFilePath: string, debug?: boolean, selector?: {
|
|
5
|
+
diff: string;
|
|
6
|
+
sync: string;
|
|
7
|
+
}): Promise<void>;
|
|
8
|
+
/**
|
|
9
|
+
* Gets the current version of the Teraslice Helm chart from `Chart.yaml`.
|
|
10
|
+
*
|
|
11
|
+
* @throws {Error} If the `Chart.yaml` file cannot be read
|
|
12
|
+
* @returns {Promise<string>} Resolves with the Helm chart version as a string
|
|
13
|
+
*/
|
|
14
|
+
export declare function getCurrentHelmChartVersion(): Promise<string>;
|
|
15
|
+
/**
|
|
16
|
+
* Updates the Teraslice Helm chart YAML files (`Chart.yaml` and `values.yaml`)
|
|
17
|
+
* with the new chart version
|
|
18
|
+
*
|
|
19
|
+
* @param {string | null} newChartVersion - The new version to set in `Chart.yaml`.
|
|
20
|
+
* - If `null`, the function does not update the chart version.
|
|
21
|
+
* @throws {TSError} If the function fails to read or write YAML files.
|
|
22
|
+
* @returns {Promise<void>} Resolves when the Helm chart files have been successfully updated
|
|
23
|
+
*/
|
|
24
|
+
export declare function updateHelmChart(newChartVersion: string | null): Promise<void>;
|
|
25
|
+
//# sourceMappingURL=helm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helm.d.ts","sourceRoot":"","sources":["../../../src/helpers/helm.ts"],"names":[],"mappings":"AAkBA,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,iBASrD;AAED,wBAAsB,eAAe,CACjC,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,cAAc,EAC9B,OAAO,UAAQ,EACf,IAAI,UAAQ,EACZ,GAAG,UAAO,iBAkBb;AAED,wBAAsB,2BAA2B,CAC7C,cAAc,EAAE,cAAc,EAC9B,OAAO,UAAQ,EACf,IAAI,UAAQ,EACZ,KAAK,UAAQ,EACb,GAAG,UAAO,iBAUb;AAED,wBAAsB,iCAAiC,CACnD,cAAc,EAAE,MAAM,EACtB,KAAK,GAAE,OAAe,EACtB,QAAQ,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,iBAqB5C;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,MAAM,CAAC,CAIlE;AAQD;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BnF"}
|