apify-test-tools 0.8.7-beta.0 → 0.8.7-beta.2
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/CHANGELOG.md +5 -0
- package/README.md +83 -13
- package/bin/build-from-local.ts +35 -34
- package/bin/build.ts +55 -59
- package/bin/diff-changes.ts +166 -125
- package/bin/dockerignore.ts +50 -0
- package/bin/main.ts +7 -7
- package/bin/path-utils.ts +13 -0
- package/bin/test-report.ts +5 -5
- package/bin/types.ts +17 -5
- package/bin/utils.ts +122 -95
- package/dist/bin/build-from-local.d.ts +2 -2
- package/dist/bin/build-from-local.d.ts.map +1 -1
- package/dist/bin/build-from-local.js +33 -28
- package/dist/bin/build-from-local.js.map +1 -1
- package/dist/bin/build.d.ts +5 -8
- package/dist/bin/build.d.ts.map +1 -1
- package/dist/bin/build.js +49 -56
- package/dist/bin/build.js.map +1 -1
- package/dist/bin/diff-changes.d.ts +0 -6
- package/dist/bin/diff-changes.d.ts.map +1 -1
- package/dist/bin/diff-changes.js +129 -89
- package/dist/bin/diff-changes.js.map +1 -1
- package/dist/bin/dockerignore.d.ts +17 -0
- package/dist/bin/dockerignore.d.ts.map +1 -0
- package/dist/bin/dockerignore.js +41 -0
- package/dist/bin/dockerignore.js.map +1 -0
- package/dist/bin/main.js +7 -7
- package/dist/bin/main.js.map +1 -1
- package/dist/bin/path-utils.d.ts +4 -0
- package/dist/bin/path-utils.d.ts.map +1 -0
- package/dist/bin/path-utils.js +9 -0
- package/dist/bin/path-utils.js.map +1 -0
- package/dist/bin/test-report.js +3 -3
- package/dist/bin/test-report.js.map +1 -1
- package/dist/bin/types.d.ts +15 -4
- package/dist/bin/types.d.ts.map +1 -1
- package/dist/bin/utils.d.ts +2 -19
- package/dist/bin/utils.d.ts.map +1 -1
- package/dist/bin/utils.js +82 -81
- package/dist/bin/utils.js.map +1 -1
- package/dist/lib/consts.d.ts +6 -0
- package/dist/lib/consts.d.ts.map +1 -1
- package/dist/lib/consts.js +6 -0
- package/dist/lib/consts.js.map +1 -1
- package/dist/lib/lib.d.ts +10 -4
- package/dist/lib/lib.d.ts.map +1 -1
- package/dist/lib/lib.js +31 -25
- package/dist/lib/lib.js.map +1 -1
- package/dist/lib/types.d.ts +2 -2
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/utils.d.ts +1 -1
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +4 -4
- package/dist/lib/utils.js.map +1 -1
- package/dist/test/unit/bin/build-from-local.test.js +55 -86
- package/dist/test/unit/bin/build-from-local.test.js.map +1 -1
- package/dist/test/unit/bin/diff-changes.test.js +358 -36
- package/dist/test/unit/bin/diff-changes.test.js.map +1 -1
- package/dist/test/unit/bin/dockerignore.test.d.ts +2 -0
- package/dist/test/unit/bin/dockerignore.test.d.ts.map +1 -0
- package/dist/test/unit/bin/dockerignore.test.js +102 -0
- package/dist/test/unit/bin/dockerignore.test.js.map +1 -0
- package/dist/test/unit/bin/path-utils.test.d.ts +2 -0
- package/dist/test/unit/bin/path-utils.test.d.ts.map +1 -0
- package/dist/test/unit/bin/path-utils.test.js +14 -0
- package/dist/test/unit/bin/path-utils.test.js.map +1 -0
- package/dist/test/unit/bin/utils.test.d.ts +2 -0
- package/dist/test/unit/bin/utils.test.d.ts.map +1 -0
- package/dist/test/unit/bin/utils.test.js +293 -0
- package/dist/test/unit/bin/utils.test.js.map +1 -0
- package/dist/test/unit/should-built-and-test.test.js +83 -32
- package/dist/test/unit/should-built-and-test.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/lib/consts.ts +7 -0
- package/lib/lib.ts +31 -25
- package/lib/types.ts +2 -2
- package/lib/utils.ts +4 -4
- package/package.json +6 -5
- package/test/unit/bin/build-from-local.test.ts +62 -121
- package/test/unit/bin/diff-changes.test.ts +397 -41
- package/test/unit/bin/dockerignore.test.ts +123 -0
- package/test/unit/bin/path-utils.test.ts +17 -0
- package/test/unit/bin/utils.test.ts +343 -0
- package/test/unit/should-built-and-test.test.ts +89 -32
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export type DockerIgnoreMatcher = (repoRelativePath: string) => boolean;
|
|
2
|
+
/**
|
|
3
|
+
* Reads `.dockerignore` from `absoluteRootDir` and returns a matcher for paths relative to
|
|
4
|
+
* `hoistFrom`. `hoistFrom` defaults to '', meaning callers already pass paths relative to
|
|
5
|
+
* `absoluteRootDir` directly — isPathWithinScope/hoistPath both treat '' as "matches everything" /
|
|
6
|
+
* identity, so the scope-check and hoist collapse to a no-op in that case, not via a branch.
|
|
7
|
+
*
|
|
8
|
+
* Returns a no-op matcher (always returns false) when the file is absent.
|
|
9
|
+
*/
|
|
10
|
+
export declare const buildDockerIgnoreMatcher: (absoluteRootDir: string, hoistFrom?: string) => DockerIgnoreMatcher;
|
|
11
|
+
/**
|
|
12
|
+
* Load .dockerignore from the root of an actor's dockerContextDir and return a matcher
|
|
13
|
+
* that accepts repo-root-relative file paths. Patterns are resolved relative to
|
|
14
|
+
* dockerContextDir, matching Docker's own behavior.
|
|
15
|
+
*/
|
|
16
|
+
export declare const loadDockerIgnore: (dockerContextDir: string) => DockerIgnoreMatcher;
|
|
17
|
+
//# sourceMappingURL=dockerignore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dockerignore.d.ts","sourceRoot":"","sources":["../../bin/dockerignore.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,mBAAmB,GAAG,CAAC,gBAAgB,EAAE,MAAM,KAAK,OAAO,CAAC;AASxE;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,GAAI,iBAAiB,MAAM,EAAE,kBAAc,KAAG,mBAiBlF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,kBAAkB,MAAM,KAAG,mBACkB,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import ignore from 'ignore';
|
|
4
|
+
import { hoistPath, isPathWithinScope } from './path-utils.js';
|
|
5
|
+
// Docker normalizes each pattern before matching, so a leading "./" (as in the common "./node_modules"
|
|
6
|
+
// style) is a no-op for Docker. The `ignore` package has no such normalization — it treats "./" as
|
|
7
|
+
// literal pattern text that can never match a real path, so a .dockerignore written in that style
|
|
8
|
+
// would otherwise silently match nothing. Strip it here (after any negation prefix) so the pattern
|
|
9
|
+
// behaves the way Docker itself would apply it.
|
|
10
|
+
const normalizeDockerignorePattern = (line) => line.replace(/^(!?)(?:\.\/)+/, '$1');
|
|
11
|
+
/**
|
|
12
|
+
* Reads `.dockerignore` from `absoluteRootDir` and returns a matcher for paths relative to
|
|
13
|
+
* `hoistFrom`. `hoistFrom` defaults to '', meaning callers already pass paths relative to
|
|
14
|
+
* `absoluteRootDir` directly — isPathWithinScope/hoistPath both treat '' as "matches everything" /
|
|
15
|
+
* identity, so the scope-check and hoist collapse to a no-op in that case, not via a branch.
|
|
16
|
+
*
|
|
17
|
+
* Returns a no-op matcher (always returns false) when the file is absent.
|
|
18
|
+
*/
|
|
19
|
+
export const buildDockerIgnoreMatcher = (absoluteRootDir, hoistFrom = '') => {
|
|
20
|
+
let content;
|
|
21
|
+
try {
|
|
22
|
+
content = fs.readFileSync(path.join(absoluteRootDir, '.dockerignore'), 'utf-8');
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return () => false;
|
|
26
|
+
}
|
|
27
|
+
const matcher = ignore().add(content.split('\n').map(normalizeDockerignorePattern).join('\n'));
|
|
28
|
+
return (filePath) => {
|
|
29
|
+
if (!isPathWithinScope(filePath.toLowerCase(), hoistFrom.toLowerCase())) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
return matcher.ignores(hoistPath(filePath, hoistFrom));
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Load .dockerignore from the root of an actor's dockerContextDir and return a matcher
|
|
37
|
+
* that accepts repo-root-relative file paths. Patterns are resolved relative to
|
|
38
|
+
* dockerContextDir, matching Docker's own behavior.
|
|
39
|
+
*/
|
|
40
|
+
export const loadDockerIgnore = (dockerContextDir) => buildDockerIgnoreMatcher(path.resolve(dockerContextDir), dockerContextDir);
|
|
41
|
+
//# sourceMappingURL=dockerignore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dockerignore.js","sourceRoot":"","sources":["../../bin/dockerignore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAI/D,uGAAuG;AACvG,mGAAmG;AACnG,kGAAkG;AAClG,mGAAmG;AACnG,gDAAgD;AAChD,MAAM,4BAA4B,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;AAEpG;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,eAAuB,EAAE,SAAS,GAAG,EAAE,EAAuB,EAAE;IACrG,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACD,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,EAAE,OAAO,CAAC,CAAC;IACpF,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC;IACvB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE/F,OAAO,CAAC,QAAgB,EAAW,EAAE;QACjC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACtE,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC;AACN,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,gBAAwB,EAAuB,EAAE,CAC9E,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,CAAC"}
|
package/dist/bin/main.js
CHANGED
|
@@ -10,7 +10,7 @@ import { getBranchOnlyChangedFiles, getChangedFiles, getCommits, hasMergeFromTar
|
|
|
10
10
|
import { getPushData } from './github.js';
|
|
11
11
|
import { notifyToSlack } from './slack.js';
|
|
12
12
|
import { reportTestResults } from './test-report.js';
|
|
13
|
-
import {
|
|
13
|
+
import { readConfigFile, setCwd, spawnCommandInGhWorkspace } from './utils.js';
|
|
14
14
|
/**
|
|
15
15
|
* Middlewares to be run before every command execution
|
|
16
16
|
*/
|
|
@@ -34,7 +34,7 @@ const buildOptions = (y) => {
|
|
|
34
34
|
});
|
|
35
35
|
};
|
|
36
36
|
const resolveChangedActors = async ({ targetBranch, sourceBranch, baseCommit }, { isLatest }) => {
|
|
37
|
-
const actorConfigs = await
|
|
37
|
+
const actorConfigs = await readConfigFile();
|
|
38
38
|
// This is an optimization for the common case where a branch only has cosmetic changes but had to merge in
|
|
39
39
|
// functional changes from master (being up-to-date is a CI requirement). Master is already validated, and
|
|
40
40
|
// since the branch has no functional changes of its own, there is nothing new to validate.
|
|
@@ -87,7 +87,7 @@ await yargs()
|
|
|
87
87
|
console.log(JSON.stringify(changedFiles));
|
|
88
88
|
})
|
|
89
89
|
.command('get-actor-configs', '', (_) => _, async () => {
|
|
90
|
-
const actorConfigs = await
|
|
90
|
+
const actorConfigs = await readConfigFile();
|
|
91
91
|
console.log(JSON.stringify(actorConfigs));
|
|
92
92
|
})
|
|
93
93
|
.command('get-affected-actors', '', buildOptions, async ({ targetBranch, sourceBranch, baseCommit }) => {
|
|
@@ -123,7 +123,7 @@ await yargs()
|
|
|
123
123
|
.option('use-docker-cache', { type: 'boolean', default: false }), async (args) => {
|
|
124
124
|
const { branch, changedFiles, repoUrl, commits, changelog, repository, author } = await getPushData(args.pushEventPath);
|
|
125
125
|
const isLatest = true;
|
|
126
|
-
const actorConfigs = await
|
|
126
|
+
const actorConfigs = await readConfigFile();
|
|
127
127
|
const actorsChanged = getChangedActors({
|
|
128
128
|
filepathsChanged: changedFiles,
|
|
129
129
|
actorConfigs,
|
|
@@ -157,11 +157,11 @@ await yargs()
|
|
|
157
157
|
description: 'Comma-separated actor names (owner/name) to build. Defaults to all actors in the repo.',
|
|
158
158
|
})
|
|
159
159
|
.option('dry-run', { type: 'boolean', default: false }), async ({ actors, dryRun }) => {
|
|
160
|
-
const allActorConfigs = await
|
|
160
|
+
const allActorConfigs = await readConfigFile();
|
|
161
161
|
const actorConfigs = actors
|
|
162
162
|
? actors.split(',').map((name) => {
|
|
163
163
|
const trimmed = name.trim();
|
|
164
|
-
const config = allActorConfigs.find((c) => c.
|
|
164
|
+
const config = allActorConfigs.find((c) => c.actorFullName === trimmed);
|
|
165
165
|
if (!config)
|
|
166
166
|
throw new Error(`Actor "${trimmed}" not found in repo`);
|
|
167
167
|
return config;
|
|
@@ -171,7 +171,7 @@ await yargs()
|
|
|
171
171
|
console.log(JSON.stringify(builds));
|
|
172
172
|
})
|
|
173
173
|
.command('delete-old-builds', '', (_) => _, async () => {
|
|
174
|
-
const actorConfigs = await
|
|
174
|
+
const actorConfigs = await readConfigFile();
|
|
175
175
|
await deleteOldBuilds(actorConfigs);
|
|
176
176
|
})
|
|
177
177
|
.strictCommands()
|
package/dist/bin/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../bin/main.ts"],"names":[],"mappings":";AAEA,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,OAAO,KAAoB,MAAM,OAAO,CAAC;AACzC,gFAAgF;AAChF,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,eAAe,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACtG,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../bin/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const isPathWithinScope: (filePath: string, scopePath: string) => boolean;
|
|
2
|
+
export declare const findContainingScope: (filePath: string, scopePaths: string[]) => string | undefined;
|
|
3
|
+
export declare const hoistPath: (filePath: string, scopePath: string) => string;
|
|
4
|
+
//# sourceMappingURL=path-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-utils.d.ts","sourceRoot":"","sources":["../../bin/path-utils.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,iBAAiB,GAAI,UAAU,MAAM,EAAE,WAAW,MAAM,KAAG,OACc,CAAC;AAGvF,eAAO,MAAM,mBAAmB,GAAI,UAAU,MAAM,EAAE,YAAY,MAAM,EAAE,KAAG,MAAM,GAAG,SACZ,CAAC;AAG3E,eAAO,MAAM,SAAS,GAAI,UAAU,MAAM,EAAE,WAAW,MAAM,KAAG,MACM,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// filePath and scopePath are both repo-root-relative POSIX paths, already normalized (no trailing slashes).
|
|
2
|
+
// scopePath === '' means "matches everything" — the caller's own scope (a context path, an actor's folder,
|
|
3
|
+
// a sibling's folder, a docker context dir), not necessarily the repo root.
|
|
4
|
+
export const isPathWithinScope = (filePath, scopePath) => scopePath === '' || filePath === scopePath || filePath.startsWith(`${scopePath}/`);
|
|
5
|
+
// Returns the single scopePaths entry filePath falls under, if any.
|
|
6
|
+
export const findContainingScope = (filePath, scopePaths) => scopePaths.find((scopePath) => isPathWithinScope(filePath, scopePath));
|
|
7
|
+
// Returns filePath relative to scopePath (assumes isPathWithinScope(filePath, scopePath) is already true).
|
|
8
|
+
export const hoistPath = (filePath, scopePath) => scopePath === '' ? filePath : filePath.slice(scopePath.length + 1);
|
|
9
|
+
//# sourceMappingURL=path-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-utils.js","sourceRoot":"","sources":["../../bin/path-utils.ts"],"names":[],"mappings":"AAAA,4GAA4G;AAC5G,2GAA2G;AAC3G,4EAA4E;AAC5E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,QAAgB,EAAE,SAAiB,EAAW,EAAE,CAC9E,SAAS,KAAK,EAAE,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;AAEvF,oEAAoE;AACpE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,QAAgB,EAAE,UAAoB,EAAsB,EAAE,CAC9F,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAE3E,2GAA2G;AAC3G,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAE,SAAiB,EAAU,EAAE,CACrE,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC"}
|
package/dist/bin/test-report.js
CHANGED
|
@@ -42,7 +42,7 @@ export const reportTestResults = async ({ dryRun, reportSlackChannel, reportFile
|
|
|
42
42
|
failedAssertions.push(...failureMessages.map((message) => ({
|
|
43
43
|
message: message.split('\n')?.[0],
|
|
44
44
|
runLink: meta.runLink,
|
|
45
|
-
|
|
45
|
+
actorId: meta.actorId,
|
|
46
46
|
})));
|
|
47
47
|
}
|
|
48
48
|
console.error(`${i + 1}) ${fullName} ... ${meta.runLink}`);
|
|
@@ -63,10 +63,10 @@ export const reportTestResults = async ({ dryRun, reportSlackChannel, reportFile
|
|
|
63
63
|
const jobLink = jobUrl ? ` Check <${jobUrl}|the job>.` : '';
|
|
64
64
|
let slackMessage = `\`${workflowName ?? '-'}\``;
|
|
65
65
|
slackMessage += `: has ${failedAssertions.length} failed assertions. Failing test suites: ${failed.length}/${total}.${jobLink}`;
|
|
66
|
-
slackMessage += `\n\n${failedAssertions[0].message} --- <${failedAssertions[0].runLink}|${failedAssertions[0].
|
|
66
|
+
slackMessage += `\n\n${failedAssertions[0].message} --- <${failedAssertions[0].runLink}|${failedAssertions[0].actorId}>`;
|
|
67
67
|
const blocks = failedAssertions
|
|
68
68
|
.slice(1)
|
|
69
|
-
.map(({ message, runLink,
|
|
69
|
+
.map(({ message, runLink, actorId }) => `• ${message} --- <${runLink}|${actorId}>`);
|
|
70
70
|
console.error('SLACK:', slackMessage);
|
|
71
71
|
console.error('\tblocks:', blocks.join('\n\t\t'));
|
|
72
72
|
if (!reportSlackChannel) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-report.js","sourceRoot":"","sources":["../../bin/test-report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAElC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAUvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,EACpC,MAAM,EACN,kBAAkB,EAClB,UAAU,EAAE,eAAe,EAC3B,MAAM,EACN,YAAY,GACW,EAAE,EAAE;IAC3B,MAAM,OAAO,GAAoB,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7F,MAAM,MAAM,GAA0B,EAAE,CAAC;IACzC,MAAM,MAAM,GAA0B,EAAE,CAAC;IAEzC,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACvC,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACxC,SAAS;QACb,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC5C,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACJ,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;QACL,CAAC;IACL,CAAC;IAED,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"test-report.js","sourceRoot":"","sources":["../../bin/test-report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAElC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAUvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,EACpC,MAAM,EACN,kBAAkB,EAClB,UAAU,EAAE,eAAe,EAC3B,MAAM,EACN,YAAY,GACW,EAAE,EAAE;IAC3B,MAAM,OAAO,GAAoB,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7F,MAAM,MAAM,GAA0B,EAAE,CAAC;IACzC,MAAM,MAAM,GAA0B,EAAE,CAAC;IAEzC,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACvC,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACxC,SAAS;QACb,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC5C,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACJ,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;QACL,CAAC;IACL,CAAC;IAED,MAAM,gBAAgB,GAA4D,EAAE,CAAC;IAErF,OAAO,CAAC,KAAK,EAAE,CAAC;IAChB,OAAO,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,MAAM,aAAa,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACpE,OAAO,CAAC,KAAK,EAAE,CAAC;IAChB,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACpE,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACpE,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACpE,OAAO,CAAC,KAAK,EAAE,CAAC;IAChB,KAAK,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QAC1C,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,QAAQ,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACnE,OAAO,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACpE,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACpE,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACpE,OAAO,CAAC,KAAK,EAAE,CAAC;IAChB,KAAK,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QAC1C,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QACpD,IAAI,eAAe,EAAE,CAAC;YAClB,gBAAgB,CAAC,IAAI,CACjB,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACjC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,OAAO,EAAE,IAAI,CAAC,OAAO;aACxB,CAAC,CAAC,CACN,CAAC;QACN,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,CAAC;IAChB,OAAO,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,MAAM,aAAa,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACpE,OAAO,CAAC,KAAK,EAAE,CAAC;IAEhB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CACT,iJAAiJ,CACpJ,CAAC;QACF,OAAO;IACX,CAAC;IAED,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO;IACX,CAAC;IAED,2BAA2B;IAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,MAAM,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,IAAI,YAAY,GAAG,KAAK,YAAY,IAAI,GAAG,IAAI,CAAC;IAChD,YAAY,IAAI,SAAS,gBAAgB,CAAC,MAAM,4CAA4C,MAAM,CAAC,MAAM,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;IAChI,YAAY,IAAI,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,SAAS,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC;IACzH,MAAM,MAAM,GAAG,gBAAgB;SAC1B,KAAK,CAAC,CAAC,CAAC;SACR,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,KAAK,OAAO,SAAS,OAAO,IAAI,OAAO,GAAG,CAAC,CAAC;IAExF,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACtC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAElD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACtB,OAAO;IACX,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,UAAU,GAAG,SAAS,CAAC,uBAAuB,CAAC,CAAC;QACtD,MAAM,gBAAgB,CAAC,kBAAkB,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACjF,CAAC;AACL,CAAC,CAAC"}
|
package/dist/bin/types.d.ts
CHANGED
|
@@ -74,15 +74,26 @@ export interface GithubCommit {
|
|
|
74
74
|
removed: string[];
|
|
75
75
|
modified: string[];
|
|
76
76
|
}
|
|
77
|
+
export interface ActorConfigFileEntry {
|
|
78
|
+
folder: string;
|
|
79
|
+
actorFullName: string;
|
|
80
|
+
tokenEnvVar: string;
|
|
81
|
+
overrideActorContext?: string[];
|
|
82
|
+
}
|
|
83
|
+
export interface ActorConfigFile {
|
|
84
|
+
actors: ActorConfigFileEntry[];
|
|
85
|
+
}
|
|
77
86
|
export interface BuildData {
|
|
78
87
|
buildId: string;
|
|
79
|
-
|
|
80
|
-
|
|
88
|
+
actorRawId: string;
|
|
89
|
+
actorFullName: string;
|
|
81
90
|
buildNumber: string;
|
|
82
91
|
}
|
|
83
92
|
export interface ActorConfig {
|
|
84
|
-
|
|
93
|
+
actorFullName: string;
|
|
85
94
|
folder: string;
|
|
86
|
-
|
|
95
|
+
tokenEnvVar: string;
|
|
96
|
+
dockerContextDir: string;
|
|
97
|
+
contextPaths: string[];
|
|
87
98
|
}
|
|
88
99
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/bin/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../bin/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,MAAM,GAAG;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAGF,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE;QACH,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC;CACL;AAED,MAAM,MAAM,WAAW,GAAG,sBAAsB,GAAG,eAAe,CAAC;AAEnE,MAAM,WAAW,sBAAsB;IAGnC,IAAI,EAAE,cAAc,CAAC;IACrB,YAAY,EAAE;QACV,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE;YACF,GAAG,EAAE,MAAM,CAAC;YACZ,GAAG,EAAE,MAAM,CAAC;SACf,CAAC;QACF,IAAI,EAAE;YACF,GAAG,EAAE,MAAM,CAAC;YACZ,GAAG,EAAE,MAAM,CAAC;SACf,CAAC;KACL,CAAC;IACF,UAAU,EAAE,UAAU,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,gBAAgB,CAAC;IAC9B,UAAU,EAAE,UAAU,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,SAAS,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../bin/types.ts"],"names":[],"mappings":"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"}
|
package/dist/bin/utils.d.ts
CHANGED
|
@@ -16,28 +16,11 @@ export declare const listRepoFilePaths: (repoRoot: string, subDir: string) => st
|
|
|
16
16
|
* pattern matching.
|
|
17
17
|
*/
|
|
18
18
|
export declare const getGitignoredPaths: (relativePaths: string[]) => Set<string>;
|
|
19
|
-
/**
|
|
20
|
-
* Given paths relative to `rootDir`, returns the subset that a `.dockerignore` file sitting at
|
|
21
|
-
* `rootDir` would exclude — mirroring getGitignoredPaths, but for Docker's own ignore file. `git
|
|
22
|
-
* check-ignore` has no built-in notion of .dockerignore, but pointing `core.excludesFile` at a
|
|
23
|
-
* normalized copy of it for a single invocation makes git apply its patterns exactly like a
|
|
24
|
-
* .gitignore, without re-implementing gitignore-style pattern matching ourselves. A missing
|
|
25
|
-
* .dockerignore is a no-op (empty set), so there's no need to check for its existence first.
|
|
26
|
-
*
|
|
27
|
-
* Crucially this passes `--no-index`: by default git never reports an already-tracked file as
|
|
28
|
-
* ignored (that's how real .gitignore semantics work — tracked files aren't affected by ignore
|
|
29
|
-
* rules), but Docker excludes a matching path from the build context unconditionally, regardless
|
|
30
|
-
* of git tracking. `--no-index` makes git apply the patterns uniformly, matching Docker's behavior.
|
|
31
|
-
*/
|
|
32
|
-
export declare const getDockerignoredPaths: (rootDir: string, relativePaths: string[]) => Set<string>;
|
|
33
19
|
export declare const toActorVersionSourceFile: (absPath: string, rootDir: string) => Promise<ActorVersionSourceFile>;
|
|
34
20
|
export declare const spawnCommandInGhWorkspace: (command: string, args?: string[]) => string;
|
|
35
21
|
export declare const getEnvVar: (varName: string, defaultValue?: string) => string;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
* This works locally if checkoutRepoLocally is called first
|
|
39
|
-
*/
|
|
40
|
-
export declare const getRepoActors: () => Promise<ActorConfig[]>;
|
|
22
|
+
export declare const CONFIG_FILE_NAME = "apify-test-tools.config.json";
|
|
23
|
+
export declare const readConfigFile: () => Promise<ActorConfig[]>;
|
|
41
24
|
export declare const setCwd: ({ workspace }: {
|
|
42
25
|
workspace: string | undefined;
|
|
43
26
|
}) => void;
|
package/dist/bin/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../bin/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../bin/utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAK3D,OAAO,KAAK,EAAE,WAAW,EAAmB,MAAM,YAAY,CAAC;AAI/D,eAAO,MAAM,YAAY,GAAI,WAAW,MAAM,EAAE,YAAY,MAAM,KAAG,OACZ,CAAC;AAE1D;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAAI,UAAU,MAAM,EAAE,QAAQ,MAAM,KAAG,MAAM,EAY1E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAI,eAAe,MAAM,EAAE,KAAG,GAAG,CAAC,MAAM,CAetE,CAAC;AAIF,eAAO,MAAM,wBAAwB,GAAU,SAAS,MAAM,EAAE,SAAS,MAAM,KAAG,OAAO,CAAC,sBAAsB,CAM/G,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,SAAS,MAAM,EAAE,OAAM,MAAM,EAAO,WAgB7E,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,SAAS,MAAM,EAAE,eAAe,MAAM,KAAG,MAMlE,CAAC;AAEF,eAAO,MAAM,gBAAgB,iCAAiC,CAAC;AAmB/D,eAAO,MAAM,cAAc,QAAa,OAAO,CAAC,WAAW,EAAE,CAiH5D,CAAC;AAEF,eAAO,MAAM,MAAM,GAAI,eAAe;IAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,SAOtE,CAAC"}
|
package/dist/bin/utils.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { spawnSync } from 'node:child_process';
|
|
2
|
-
import fsSync from 'node:fs';
|
|
3
2
|
import fs from 'node:fs/promises';
|
|
4
|
-
import os from 'node:os';
|
|
5
3
|
import path from 'node:path';
|
|
6
4
|
import { SOURCE_FILE_FORMATS } from '@apify/consts';
|
|
5
|
+
import { isPathWithinScope } from './path-utils.js';
|
|
7
6
|
// Returns true when `childPath` is not inside `parentPath`.
|
|
8
7
|
// Used to detect monorepo actors whose dockerContextDir escapes the actor directory.
|
|
9
8
|
export const isOutsideDir = (childPath, parentPath) => path.relative(parentPath, childPath).startsWith('..');
|
|
@@ -45,56 +44,6 @@ export const getGitignoredPaths = (relativePaths) => {
|
|
|
45
44
|
}
|
|
46
45
|
return new Set(result.stdout.toString().split('\n').filter(Boolean));
|
|
47
46
|
};
|
|
48
|
-
// Docker normalizes each pattern before matching, so a leading "./" (as in the common "./node_modules"
|
|
49
|
-
// style) is a no-op for Docker. git's ignore engine has no such normalization — it treats "./" as
|
|
50
|
-
// literal pattern text that can never match a real path, so a .dockerignore written in that style
|
|
51
|
-
// would otherwise silently match nothing under git. Strip it here (after any negation prefix) so
|
|
52
|
-
// git sees the same effective pattern Docker would.
|
|
53
|
-
const normalizeDockerignorePattern = (line) => line.replace(/^(!?)(?:\.\/)+/, '$1');
|
|
54
|
-
/**
|
|
55
|
-
* Given paths relative to `rootDir`, returns the subset that a `.dockerignore` file sitting at
|
|
56
|
-
* `rootDir` would exclude — mirroring getGitignoredPaths, but for Docker's own ignore file. `git
|
|
57
|
-
* check-ignore` has no built-in notion of .dockerignore, but pointing `core.excludesFile` at a
|
|
58
|
-
* normalized copy of it for a single invocation makes git apply its patterns exactly like a
|
|
59
|
-
* .gitignore, without re-implementing gitignore-style pattern matching ourselves. A missing
|
|
60
|
-
* .dockerignore is a no-op (empty set), so there's no need to check for its existence first.
|
|
61
|
-
*
|
|
62
|
-
* Crucially this passes `--no-index`: by default git never reports an already-tracked file as
|
|
63
|
-
* ignored (that's how real .gitignore semantics work — tracked files aren't affected by ignore
|
|
64
|
-
* rules), but Docker excludes a matching path from the build context unconditionally, regardless
|
|
65
|
-
* of git tracking. `--no-index` makes git apply the patterns uniformly, matching Docker's behavior.
|
|
66
|
-
*/
|
|
67
|
-
export const getDockerignoredPaths = (rootDir, relativePaths) => {
|
|
68
|
-
if (relativePaths.length === 0)
|
|
69
|
-
return new Set();
|
|
70
|
-
let dockerignoreContent;
|
|
71
|
-
try {
|
|
72
|
-
dockerignoreContent = fsSync.readFileSync(path.join(rootDir, '.dockerignore'), 'utf8');
|
|
73
|
-
}
|
|
74
|
-
catch {
|
|
75
|
-
return new Set();
|
|
76
|
-
}
|
|
77
|
-
const normalizedContent = dockerignoreContent.split('\n').map(normalizeDockerignorePattern).join('\n');
|
|
78
|
-
const tempDir = fsSync.mkdtempSync(path.join(os.tmpdir(), 'apify-dockerignore-'));
|
|
79
|
-
try {
|
|
80
|
-
const normalizedPath = path.join(tempDir, '.dockerignore');
|
|
81
|
-
fsSync.writeFileSync(normalizedPath, normalizedContent);
|
|
82
|
-
const result = spawnSync('git', ['-c', `core.excludesFile=${normalizedPath}`, 'check-ignore', '--no-index', '--stdin'], {
|
|
83
|
-
cwd: rootDir,
|
|
84
|
-
input: relativePaths.join('\n'),
|
|
85
|
-
maxBuffer: 100 * 1024 * 1024,
|
|
86
|
-
});
|
|
87
|
-
// Exit code 1 means none of the given paths are ignored - not an error. Anything else
|
|
88
|
-
// (e.g. 128 for "not a git repository") is a real failure.
|
|
89
|
-
if (result.status !== 0 && result.status !== 1) {
|
|
90
|
-
throw new Error(`[Command failed]: git check-ignore (dockerignore)\n${result.stderr.toString()}`);
|
|
91
|
-
}
|
|
92
|
-
return new Set(result.stdout.toString().split('\n').filter(Boolean));
|
|
93
|
-
}
|
|
94
|
-
finally {
|
|
95
|
-
fsSync.rmSync(tempDir, { recursive: true, force: true });
|
|
96
|
-
}
|
|
97
|
-
};
|
|
98
47
|
const isBinary = (buffer) => buffer.includes(0);
|
|
99
48
|
export const toActorVersionSourceFile = async (absPath, rootDir) => {
|
|
100
49
|
const buffer = await fs.readFile(absPath);
|
|
@@ -124,48 +73,100 @@ export const getEnvVar = (varName, defaultValue) => {
|
|
|
124
73
|
}
|
|
125
74
|
return value;
|
|
126
75
|
};
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
76
|
+
export const CONFIG_FILE_NAME = 'apify-test-tools.config.json';
|
|
77
|
+
// Strips a trailing slash so config-declared paths ("actors/shopify/" vs "actors/shopify") compare equal.
|
|
78
|
+
const stripTrailingSlash = (pathValue) => pathValue.replace(/\/+$/, '');
|
|
79
|
+
const findOverlappingContextPaths = (contextPaths) => {
|
|
80
|
+
for (let i = 0; i < contextPaths.length; i++) {
|
|
81
|
+
for (let j = i + 1; j < contextPaths.length; j++) {
|
|
82
|
+
if (isPathWithinScope(contextPaths[i], contextPaths[j]) ||
|
|
83
|
+
isPathWithinScope(contextPaths[j], contextPaths[i])) {
|
|
84
|
+
return [contextPaths[i], contextPaths[j]];
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return undefined;
|
|
89
|
+
};
|
|
90
|
+
export const readConfigFile = async () => {
|
|
91
|
+
let raw;
|
|
133
92
|
try {
|
|
134
|
-
|
|
93
|
+
raw = await fs.readFile(CONFIG_FILE_NAME, 'utf-8');
|
|
135
94
|
}
|
|
136
95
|
catch {
|
|
137
|
-
|
|
138
|
-
|
|
96
|
+
throw new Error(`Config file "${CONFIG_FILE_NAME}" not found in the current directory. ` +
|
|
97
|
+
`Please create one with the required actor entries.`);
|
|
139
98
|
}
|
|
140
|
-
let
|
|
99
|
+
let config;
|
|
141
100
|
try {
|
|
142
|
-
|
|
101
|
+
config = JSON.parse(raw);
|
|
143
102
|
}
|
|
144
103
|
catch {
|
|
145
|
-
|
|
146
|
-
|
|
104
|
+
throw new Error(`Config file "${CONFIG_FILE_NAME}" contains invalid JSON.`);
|
|
105
|
+
}
|
|
106
|
+
if (!Array.isArray(config.actors)) {
|
|
107
|
+
throw new Error(`Config file "${CONFIG_FILE_NAME}" must have an "actors" array at the top level.`);
|
|
147
108
|
}
|
|
109
|
+
const seenFolders = new Set();
|
|
148
110
|
const actorConfigs = [];
|
|
149
|
-
for (const
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
111
|
+
for (const [index, entry] of config.actors.entries()) {
|
|
112
|
+
if (typeof entry.folder !== 'string') {
|
|
113
|
+
throw new Error(`Invalid "folder" for actor entry at index ${index} in "${CONFIG_FILE_NAME}". ` +
|
|
114
|
+
`Must be a string (use "." for a single-actor repo).`);
|
|
115
|
+
}
|
|
116
|
+
const folder = entry.folder === '.' ? '' : stripTrailingSlash(entry.folder);
|
|
117
|
+
if (seenFolders.has(folder)) {
|
|
118
|
+
throw new Error(`Duplicate folder "${entry.folder}" in "${CONFIG_FILE_NAME}". Each actor must have a unique folder.`);
|
|
119
|
+
}
|
|
120
|
+
seenFolders.add(folder);
|
|
121
|
+
const nameParts = entry.actorFullName?.split('/');
|
|
122
|
+
if (!nameParts || nameParts.length !== 2 || !nameParts[0] || !nameParts[1]) {
|
|
123
|
+
throw new Error(`Invalid "actorFullName" for folder "${entry.folder}" in "${CONFIG_FILE_NAME}". ` +
|
|
124
|
+
`Must be in "owner/name" format (e.g. "apify/web-scraper").`);
|
|
125
|
+
}
|
|
126
|
+
if (entry.overrideActorContext !== undefined) {
|
|
127
|
+
if (!Array.isArray(entry.overrideActorContext) ||
|
|
128
|
+
!entry.overrideActorContext.every((p) => typeof p === 'string')) {
|
|
129
|
+
throw new Error(`Invalid "overrideActorContext" for folder "${entry.folder}" in "${CONFIG_FILE_NAME}". ` +
|
|
130
|
+
`Must be an array of strings.`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
const actorJsonPath = folder ? `${folder}/.actor/actor.json` : '.actor/actor.json';
|
|
134
|
+
let actorJson;
|
|
135
|
+
try {
|
|
136
|
+
actorJson = JSON.parse(await fs.readFile(actorJsonPath, 'utf-8'));
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
throw new Error(`Cannot read "${actorJsonPath}". Every actor entry in "${CONFIG_FILE_NAME}" ` +
|
|
140
|
+
`must have a corresponding .actor/actor.json file.`);
|
|
141
|
+
}
|
|
142
|
+
const actorDotDir = folder ? `${folder}/.actor` : '.actor';
|
|
143
|
+
const rawDockerContextDir = actorJson.dockerContextDir ?? '..';
|
|
144
|
+
const resolved = path.resolve(process.cwd(), actorDotDir, rawDockerContextDir);
|
|
145
|
+
const dockerContextDir = path.relative(process.cwd(), resolved);
|
|
146
|
+
if (dockerContextDir.startsWith('..')) {
|
|
147
|
+
throw new Error(`"dockerContextDir" for folder "${entry.folder}" resolves outside the repository root. ` +
|
|
148
|
+
`Resolved path: "${dockerContextDir}".`);
|
|
149
|
+
}
|
|
150
|
+
const normalizedDockerContextDir = dockerContextDir === '.' ? '' : dockerContextDir;
|
|
151
|
+
const contextPaths = (entry.overrideActorContext ?? [normalizedDockerContextDir]).map(stripTrailingSlash);
|
|
152
|
+
// The actor's own folder is always part of its context. When an explicit "overrideActorContext"
|
|
153
|
+
// doesn't already cover it, add it automatically instead of failing the workflow.
|
|
154
|
+
if (!contextPaths.some((contextPath) => isPathWithinScope(folder, contextPath))) {
|
|
155
|
+
contextPaths.push(folder);
|
|
156
|
+
}
|
|
157
|
+
const overlap = findOverlappingContextPaths(contextPaths);
|
|
158
|
+
if (overlap) {
|
|
159
|
+
throw new Error(`Invalid context paths for folder "${entry.folder}" in "${CONFIG_FILE_NAME}": ` +
|
|
160
|
+
`"${overlap[0]}" and "${overlap[1]}" overlap. Context paths must not be prefixes of one another.`);
|
|
153
161
|
}
|
|
154
|
-
const [, folderType, owner, actorName] = match;
|
|
155
162
|
actorConfigs.push({
|
|
156
|
-
|
|
157
|
-
folder
|
|
158
|
-
|
|
163
|
+
actorFullName: entry.actorFullName,
|
|
164
|
+
folder,
|
|
165
|
+
tokenEnvVar: entry.tokenEnvVar,
|
|
166
|
+
dockerContextDir: normalizedDockerContextDir,
|
|
167
|
+
contextPaths,
|
|
159
168
|
});
|
|
160
169
|
}
|
|
161
|
-
console.error(`Actors in repo: ${actorConfigs
|
|
162
|
-
.filter(({ isStandalone }) => !isStandalone)
|
|
163
|
-
.map(({ actorName }) => actorName)
|
|
164
|
-
.join(', ')}`);
|
|
165
|
-
console.error(`Standalone actors in repo: ${actorConfigs
|
|
166
|
-
.filter(({ isStandalone }) => !!isStandalone)
|
|
167
|
-
.map(({ actorName }) => actorName)
|
|
168
|
-
.join(', ')}`);
|
|
169
170
|
return actorConfigs;
|
|
170
171
|
};
|
|
171
172
|
export const setCwd = ({ workspace }) => {
|
package/dist/bin/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../bin/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../bin/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/consts.d.ts
CHANGED
|
@@ -4,4 +4,10 @@ export declare const TO_FINISH_WITH_OPTIONS: ToFinishWithOptionsWithDefaults;
|
|
|
4
4
|
* Both the test runs and the vitest test specs should finish in this time - 1 hour
|
|
5
5
|
*/
|
|
6
6
|
export declare const DEFAULT_TEST_RUN_DURATION_MS: number;
|
|
7
|
+
/**
|
|
8
|
+
* Delay before checking the dataset and statistics after a run finishes to resolve eventual consistency.
|
|
9
|
+
* - This value should ensure that the dataset and statistics are fully updated before any assertions are made.
|
|
10
|
+
* - Super rarely the platform is still not synced even after 10s, so 20s should be sufficient practically always.
|
|
11
|
+
*/
|
|
12
|
+
export declare const DATASET_SYNC_DELAY_MS: number;
|
|
7
13
|
//# sourceMappingURL=consts.d.ts.map
|
package/dist/lib/consts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../lib/consts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAC;AAElE,eAAO,MAAM,sBAAsB,EAAE,+BAUpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4BAA4B,QAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../lib/consts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAC;AAElE,eAAO,MAAM,sBAAsB,EAAE,+BAUpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4BAA4B,QAAiB,CAAC;AAE3D;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,QAAY,CAAC"}
|
package/dist/lib/consts.js
CHANGED
|
@@ -13,4 +13,10 @@ export const TO_FINISH_WITH_OPTIONS = {
|
|
|
13
13
|
* Both the test runs and the vitest test specs should finish in this time - 1 hour
|
|
14
14
|
*/
|
|
15
15
|
export const DEFAULT_TEST_RUN_DURATION_MS = 60 * 60 * 1000; // 1 hour
|
|
16
|
+
/**
|
|
17
|
+
* Delay before checking the dataset and statistics after a run finishes to resolve eventual consistency.
|
|
18
|
+
* - This value should ensure that the dataset and statistics are fully updated before any assertions are made.
|
|
19
|
+
* - Super rarely the platform is still not synced even after 10s, so 20s should be sufficient practically always.
|
|
20
|
+
*/
|
|
21
|
+
export const DATASET_SYNC_DELAY_MS = 20 * 1000; // 20 seconds
|
|
16
22
|
//# sourceMappingURL=consts.js.map
|
package/dist/lib/consts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../../lib/consts.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,sBAAsB,GAAoC;IACnE,MAAM,EAAE,WAAW;IACnB,QAAQ,EAAE;QACN,GAAG,EAAE,GAAG,EAAE,UAAU;QACpB,GAAG,EAAE,OAAO,EAAE,SAAS;KAC1B;IACD,cAAc,EAAE,CAAC;IACjB,eAAe,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;IAC3B,oBAAoB,EAAE,IAAI;IAC1B,aAAa,EAAE,CAAC,gBAAgB,EAAE,WAAW,CAAC;CACjD,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,SAAS"}
|
|
1
|
+
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../../lib/consts.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,sBAAsB,GAAoC;IACnE,MAAM,EAAE,WAAW;IACnB,QAAQ,EAAE;QACN,GAAG,EAAE,GAAG,EAAE,UAAU;QACpB,GAAG,EAAE,OAAO,EAAE,SAAS;KAC1B;IACD,cAAc,EAAE,CAAC;IACjB,eAAe,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;IAC3B,oBAAoB,EAAE,IAAI;IAC1B,aAAa,EAAE,CAAC,gBAAgB,EAAE,WAAW,CAAC;CACjD,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,SAAS;AAErE;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa"}
|