apify-test-tools 0.10.1 → 0.10.2-beta.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/.github/workflows/public_pr-build-test.yaml +3 -26
- package/.github/workflows-package-version +1 -1
- package/CHANGELOG.md +10 -0
- package/README.md +5 -2
- package/bin/diff-changes.ts +24 -3
- package/bin/main.ts +15 -2
- package/bin/types.ts +1 -0
- package/dist/bin/diff-changes.d.ts +2 -1
- package/dist/bin/diff-changes.d.ts.map +1 -1
- package/dist/bin/diff-changes.js +16 -5
- package/dist/bin/diff-changes.js.map +1 -1
- package/dist/bin/main.js +14 -2
- package/dist/bin/main.js.map +1 -1
- package/dist/bin/types.d.ts +1 -0
- package/dist/bin/types.d.ts.map +1 -1
- package/dist/lib/extend-expect.js +2 -2
- package/dist/lib/extend-expect.js.map +1 -1
- package/dist/test/unit/bin/diff-changes.test.js +91 -0
- package/dist/test/unit/bin/diff-changes.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/lib/extend-expect.ts +2 -2
- package/package.json +67 -65
- package/test/unit/bin/diff-changes.test.ts +106 -0
|
@@ -59,6 +59,8 @@ jobs:
|
|
|
59
59
|
args=(
|
|
60
60
|
--source-branch "origin/$HEAD_REF"
|
|
61
61
|
--target-branch "origin/$BASE_REF"
|
|
62
|
+
# TODO: Temporary hotfix until build glob matching aligns with Vitest's test selection glob.
|
|
63
|
+
--test-files-glob 'test/platform/**'
|
|
62
64
|
--use-docker-cache
|
|
63
65
|
)
|
|
64
66
|
[ -n "$base_commit" ] && args+=(--base-commit "$base_commit")
|
|
@@ -66,37 +68,12 @@ jobs:
|
|
|
66
68
|
npx apify-test-tools build "${args[@]}")
|
|
67
69
|
echo "actor_builds=$actor_builds" | tee -a "$GITHUB_OUTPUT"
|
|
68
70
|
|
|
69
|
-
# Test files are outside every actor's Docker build context, so the diff above finds nothing
|
|
70
|
-
# to build and every test skips. Right for "rebuild?", wrong for "test?".
|
|
71
|
-
- name: Find changed platform tests
|
|
72
|
-
id: changed_tests
|
|
73
|
-
env:
|
|
74
|
-
# Branch names are attacker-controlled on fork PRs, so they reach the script as
|
|
75
|
-
# environment variables rather than being interpolated into it.
|
|
76
|
-
HEAD_REF: ${{ github.head_ref }}
|
|
77
|
-
BASE_REF: ${{ github.base_ref }}
|
|
78
|
-
run: |
|
|
79
|
-
changed=$(git diff --name-only --diff-filter=d "origin/$BASE_REF...HEAD" -- test/platform/ \
|
|
80
|
-
| sed "s|^|./|" | tr '\n' ' ')
|
|
81
|
-
branch_actors=$(npx apify-test-tools get-affected-actors \
|
|
82
|
-
--source-branch "origin/$HEAD_REF" \
|
|
83
|
-
--target-branch "origin/$BASE_REF")
|
|
84
|
-
if [ -n "$changed" ] && [ "$branch_actors" = "[]" ]; then
|
|
85
|
-
echo "target=$changed" | tee -a "$GITHUB_OUTPUT"
|
|
86
|
-
elif [ -n "$changed" ]; then
|
|
87
|
-
echo "Platform tests: the changed platform tests did not run. This branch also changes actor code validated at an earlier commit, so they could only have run against the deployed build, which lacks those changes. Re-run this job from scratch to rebuild and test together." >> "$GITHUB_STEP_SUMMARY"
|
|
88
|
-
fi
|
|
89
|
-
|
|
90
71
|
# Runs the repo's test code and its whole import graph, so it gets the tester token only.
|
|
91
72
|
- name: Test
|
|
92
73
|
env:
|
|
93
74
|
ACTOR_BUILDS: ${{ steps.build.outputs.actor_builds }}
|
|
94
75
|
TESTER_APIFY_TOKEN: ${{ secrets.TESTER_APIFY_TOKEN }}
|
|
95
|
-
|
|
96
|
-
RUN_ALL_PLATFORM_TESTS: ${{ steps.changed_tests.outputs.target && '1' || '' }}
|
|
97
|
-
# `related` runs the tests that import each changed file, so a changed helper runs its dependents.
|
|
98
|
-
# A plain filter would match no test for a helper and exit 1; `related` exits 0 when nothing imports it.
|
|
99
|
-
run: npx vitest ${{ steps.changed_tests.outputs.target && format('related {0}', steps.changed_tests.outputs.target) || format('./test/platform/{0}', inputs.test-files-glob) }} --run --maxConcurrency 20 --fileParallelism=true --maxWorkers 100
|
|
76
|
+
run: npx vitest ./test/platform/${{ inputs.test-files-glob }} --run --maxConcurrency 20 --fileParallelism=true --maxWorkers 100
|
|
100
77
|
|
|
101
78
|
# NOTE: This is an optimization that if we did functional changes and later only cosmetic changes (e.g. dev readme), we will compare changes files only for the last commit. This must run after tests because we want to cache the latest commit only if the tests are successful
|
|
102
79
|
- name: Store last validated commit to cache
|
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.11.0
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
<!-- git-cliff-unreleased-start -->
|
|
6
|
+
## 0.10.2 - **not yet released**
|
|
7
|
+
|
|
8
|
+
### 🐛 Bug Fixes
|
|
9
|
+
|
|
10
|
+
- **toBeObject:** Reject null ([#191](https://github.com/apify/apify-test-tools/pull/191)) ([6bdae49](https://github.com/apify/apify-test-tools/commit/6bdae4905756e0ae8dd6146942e6fc04dbead48e)) by [@JuanGalilea](https://github.com/JuanGalilea), closes [#88](https://github.com/apify/apify-test-tools/issues/88)
|
|
11
|
+
- Build and test on test-only changes even when .dockerignore lists the tests ([#177](https://github.com/apify/apify-test-tools/pull/177)) ([5cb1b5a](https://github.com/apify/apify-test-tools/commit/5cb1b5ab5f6f43ec279f9624b402e73d55a5974a)) by [@artogahr](https://github.com/artogahr), closes [#145](https://github.com/apify/apify-test-tools/issues/145)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
<!-- git-cliff-unreleased-end -->
|
|
5
15
|
## [0.10.1](https://github.com/apify/apify-test-tools/releases/tag/v0.10.1) (2026-10-13)
|
|
6
16
|
|
|
7
17
|
### 🚀 Features
|
package/README.md
CHANGED
|
@@ -57,7 +57,7 @@ When a PR is opened or code is pushed, the tool determines which actors need to
|
|
|
57
57
|
2. **CHANGELOG classification** — a `CHANGELOG.md` file is always `cosmetic` (only triggers a release build, not tests), for every actor, regardless of context or folder. (See [issue #106](https://github.com/apify/apify-test-tools/issues/106).)
|
|
58
58
|
3. **Context matching** — the file must fall within one of the actor's context paths (`dockerContextDir` from `actor.json` by default, or `overrideActorContext` from config if set). Files outside every context path are skipped.
|
|
59
59
|
4. **Hardcoded ignore list, context-aware** — the file path is first "hoisted" relative to the context path it matched (e.g. a standalone actor's own `.eslintrc` is checked as just `.eslintrc`, not the full repo-root-relative path), then checked against repo-level dev file patterns (`.vscode/`, `.gitignore`, `.husky/`, `.eslintrc`, `eslint.config.mjs`, `.prettierrc`, `.editorconfig`). There's no hardcoded special-casing for legacy `code/`/`shared/` layouts — repos that need those directories treated as top-level must list them explicitly in `overrideActorContext`.
|
|
60
|
-
5. **`.dockerignore` filtering** — if a `.dockerignore` exists at the root of the actor's `dockerContextDir`, matching files are ignored. Patterns are resolved relative to `dockerContextDir`, matching Docker's own behavior.
|
|
60
|
+
5. **`.dockerignore` filtering** — if a `.dockerignore` exists at the root of the actor's `dockerContextDir`, matching files are ignored. Patterns are resolved relative to `dockerContextDir`, matching Docker's own behavior. Test files are the exception: `build --test-files-glob <glob>` (relative to the repo root) skips this check for matching files, so a changed test triggers a build, and with it its tests, even when `.dockerignore` lists it. The PR workflow passes `test/platform/**`. Context matching still applies, so tests outside an actor's `dockerContextDir` (e.g. a root `test/` with standalone actors) need to be listed in its `overrideActorContext`; `build` logs a warning for changed test files outside every actor's context.
|
|
61
61
|
6. **README classification** — a `README.md` file is `cosmetic` (only triggers a release build, not tests) if it lives inside the actor's own `folder`; otherwise it's ignored entirely, since it isn't documentation for this actor.
|
|
62
62
|
7. **Cosmetic JSON classification** — `.json` files inside the actor's own `.actor/` directory with only cosmetic schema changes (whitespace, key ordering) only trigger a release build.
|
|
63
63
|
8. **Functional** — everything else triggers both build and tests.
|
|
@@ -649,12 +649,15 @@ TESTER_APIFY_TOKEN=<token> \
|
|
|
649
649
|
|
|
650
650
|
#### Full example
|
|
651
651
|
|
|
652
|
+
Tests only run for Actors in `ACTOR_BUILDS`, so a custom workflow has to build (and pass) the Actors even when only tests changed. Pass `--test-files-glob` so test changes count even when `.dockerignore` lists them.
|
|
653
|
+
|
|
652
654
|
```bash
|
|
653
655
|
# Build and capture output
|
|
654
656
|
BUILDS=$(APIFY_TOKEN_JOHN_DOE=apify_api_xxx \
|
|
655
657
|
npx apify-test-tools build \
|
|
656
658
|
--target-branch origin/master \
|
|
657
|
-
--source-branch origin/my-dummy-branch
|
|
659
|
+
--source-branch origin/my-dummy-branch \
|
|
660
|
+
--test-files-glob 'test/platform/**')
|
|
658
661
|
|
|
659
662
|
# Run tests with the builds
|
|
660
663
|
ACTOR_BUILDS="$BUILDS" \
|
package/bin/diff-changes.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import picomatch from 'picomatch';
|
|
2
|
+
|
|
1
3
|
import { isCosmeticOnlyJsonSchemaChange } from './diff-json-schema.js';
|
|
2
4
|
import { type DockerIgnoreMatcher, loadDockerIgnore } from './dockerignore.js';
|
|
3
5
|
import { logger } from './logger.js';
|
|
@@ -9,6 +11,8 @@ interface ShouldBuildAndTestOptions {
|
|
|
9
11
|
actorConfigs: ActorConfig[];
|
|
10
12
|
isLatest?: boolean;
|
|
11
13
|
commits: Commit[];
|
|
14
|
+
// Glob relative to the repo root. Matching files count as changes even when .dockerignore lists them.
|
|
15
|
+
testFilesGlob?: string;
|
|
12
16
|
}
|
|
13
17
|
|
|
14
18
|
const IGNORED_TOP_LEVEL_FILES = [
|
|
@@ -41,7 +45,7 @@ type FileChangeForActor =
|
|
|
41
45
|
* 2. Context matching (actorConfig.contextPaths) → outside-context if no match
|
|
42
46
|
* 3. Hardcoded ignore list, checked against the path hoisted relative to the matched context entry → ignored
|
|
43
47
|
* 4. .dockerignore filtering (patterns relative to dockerContextDir), skipped for the actor's own `.actor/`
|
|
44
|
-
* dir → ignored if matched
|
|
48
|
+
* dir and for test files → ignored if matched
|
|
45
49
|
* 5. README.md by filename → cosmetic if inside the actor's own folder, otherwise ignored
|
|
46
50
|
* 6. .json inside the actor's own `.actor/` dir with only cosmetic schema diffs → cosmetic (semantically verified)
|
|
47
51
|
* 7. Everything else → functional
|
|
@@ -51,6 +55,7 @@ const classifyFileChange = async (
|
|
|
51
55
|
actorConfig: ActorConfig,
|
|
52
56
|
commits: Commit[],
|
|
53
57
|
dockerIgnoreMatcher: DockerIgnoreMatcher,
|
|
58
|
+
isTestFile: (filePath: string) => boolean,
|
|
54
59
|
): Promise<FileChangeForActor> => {
|
|
55
60
|
const lowercaseFilePath = changedFile.path.toLowerCase();
|
|
56
61
|
|
|
@@ -75,7 +80,8 @@ const classifyFileChange = async (
|
|
|
75
80
|
// .actor/ can legitimately be listed in .dockerignore (the Apify platform evaluates it before
|
|
76
81
|
// the Docker build, so excluding it from the build context is a valid caching optimization) —
|
|
77
82
|
// that shouldn't cause changes to .actor/ itself to be ignored here.
|
|
78
|
-
|
|
83
|
+
// Test files are often in .dockerignore too, but a change to them must still build and test.
|
|
84
|
+
if (!isUnderActorDotDir && !isTestFile(changedFile.path) && dockerIgnoreMatcher(changedFile.path)) {
|
|
79
85
|
return { impact: 'ignored' };
|
|
80
86
|
}
|
|
81
87
|
|
|
@@ -163,8 +169,11 @@ export const getChangedActors = async ({
|
|
|
163
169
|
actorConfigs,
|
|
164
170
|
isLatest = false,
|
|
165
171
|
commits,
|
|
172
|
+
testFilesGlob,
|
|
166
173
|
}: ShouldBuildAndTestOptions): Promise<ActorConfig[]> => {
|
|
167
174
|
const actorsChangedMap = new Map<string, ActorChangeEntry>();
|
|
175
|
+
const testFilesInContext = new Set<string>();
|
|
176
|
+
const isTestFile = testFilesGlob ? picomatch(testFilesGlob, { nocase: true, dot: true }) : () => false;
|
|
168
177
|
|
|
169
178
|
for (const actorConfig of actorConfigs) {
|
|
170
179
|
const dockerIgnoreMatcher = loadDockerIgnore(actorConfig.dockerContextDir);
|
|
@@ -176,7 +185,10 @@ export const getChangedActors = async ({
|
|
|
176
185
|
continue;
|
|
177
186
|
}
|
|
178
187
|
|
|
179
|
-
const change = await classifyFileChange(filePath, actorConfig, commits, dockerIgnoreMatcher);
|
|
188
|
+
const change = await classifyFileChange(filePath, actorConfig, commits, dockerIgnoreMatcher, isTestFile);
|
|
189
|
+
if (change.impact !== 'outside-context' && isTestFile(originalFilePath)) {
|
|
190
|
+
testFilesInContext.add(originalFilePath);
|
|
191
|
+
}
|
|
180
192
|
|
|
181
193
|
if (change.impact === 'ignored' || change.impact === 'outside-context') continue;
|
|
182
194
|
if (change.impact === 'cosmetic' && !isLatest) continue;
|
|
@@ -195,6 +207,15 @@ export const getChangedActors = async ({
|
|
|
195
207
|
const groups = groupFilesByActorSet(fileToActors);
|
|
196
208
|
logChangeGroups(groups);
|
|
197
209
|
|
|
210
|
+
for (const testFile of filepathsChanged.filter(
|
|
211
|
+
(filePath) => isTestFile(filePath) && !testFilesInContext.has(filePath),
|
|
212
|
+
)) {
|
|
213
|
+
logger.warn(
|
|
214
|
+
`[DIFF]: Test file ${testFile} is outside every Actor's context, so changing only it builds and tests nothing. ` +
|
|
215
|
+
`Add its folder to "overrideActorContext" of the Actors it tests.`,
|
|
216
|
+
);
|
|
217
|
+
}
|
|
218
|
+
|
|
198
219
|
if (actorsChanged.length > 0) {
|
|
199
220
|
const actors = actorsChanged.map((config) => config.actorFullName);
|
|
200
221
|
logger.info(`[DIFF]: Actors to be built and tested: ${actors.join(', ')}`);
|
package/bin/main.ts
CHANGED
|
@@ -99,6 +99,7 @@ const resolveChangedActors = async (config: Config, { isLatest }: { isLatest: bo
|
|
|
99
99
|
filepathsChanged: branchOnlyFiles,
|
|
100
100
|
actorConfigs,
|
|
101
101
|
commits: allBranchCommits,
|
|
102
|
+
testFilesGlob: config.testFilesGlob,
|
|
102
103
|
});
|
|
103
104
|
if (branchOnlyActorsChanged.length === 0) {
|
|
104
105
|
logger.info('[MERGE-FROM-TARGET-OPTIMIZATION]: Branch itself has no functional changes, skipping tests');
|
|
@@ -112,7 +113,13 @@ const resolveChangedActors = async (config: Config, { isLatest }: { isLatest: bo
|
|
|
112
113
|
// If the optimization doesn't apply, we check all branch commits including merges for full coverage. We don't reuse the merge optimization results because here we can apply baseCommit and check merge commits (they might be functional or just cosmetic)
|
|
113
114
|
const commits = await getCommits(config);
|
|
114
115
|
const changedFiles = await getChangedFiles(commits);
|
|
115
|
-
return getChangedActors({
|
|
116
|
+
return getChangedActors({
|
|
117
|
+
filepathsChanged: changedFiles,
|
|
118
|
+
actorConfigs,
|
|
119
|
+
isLatest,
|
|
120
|
+
commits,
|
|
121
|
+
testFilesGlob: config.testFilesGlob,
|
|
122
|
+
});
|
|
116
123
|
};
|
|
117
124
|
|
|
118
125
|
await yargs()
|
|
@@ -183,7 +190,13 @@ await yargs()
|
|
|
183
190
|
.command(
|
|
184
191
|
'build',
|
|
185
192
|
'',
|
|
186
|
-
(y) =>
|
|
193
|
+
(y) =>
|
|
194
|
+
y
|
|
195
|
+
.options(gitRangeOptions)
|
|
196
|
+
.options(actorSelectionOptions)
|
|
197
|
+
.options(buildOptions)
|
|
198
|
+
.options(repoUrlOptions)
|
|
199
|
+
.option('test-files-glob', { type: 'string' }),
|
|
187
200
|
async (config) => {
|
|
188
201
|
const actorsChanged = await resolveChangedActors(config, { isLatest: false });
|
|
189
202
|
const builds = await runBuilds({
|
package/bin/types.ts
CHANGED
|
@@ -4,7 +4,8 @@ interface ShouldBuildAndTestOptions {
|
|
|
4
4
|
actorConfigs: ActorConfig[];
|
|
5
5
|
isLatest?: boolean;
|
|
6
6
|
commits: Commit[];
|
|
7
|
+
testFilesGlob?: string;
|
|
7
8
|
}
|
|
8
|
-
export declare const getChangedActors: ({ filepathsChanged, actorConfigs, isLatest, commits, }: ShouldBuildAndTestOptions) => Promise<ActorConfig[]>;
|
|
9
|
+
export declare const getChangedActors: ({ filepathsChanged, actorConfigs, isLatest, commits, testFilesGlob, }: ShouldBuildAndTestOptions) => Promise<ActorConfig[]>;
|
|
9
10
|
export {};
|
|
10
11
|
//# sourceMappingURL=diff-changes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff-changes.d.ts","sourceRoot":"","sources":["../../bin/diff-changes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"diff-changes.d.ts","sourceRoot":"","sources":["../../bin/diff-changes.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGtD,UAAU,yBAAyB;IAC/B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAuJD,eAAO,MAAM,gBAAgB,GAAU,uEAMpC,yBAAyB,KAAG,OAAO,CAAC,WAAW,EAAE,CAsDnD,CAAC"}
|
package/dist/bin/diff-changes.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import picomatch from 'picomatch';
|
|
1
2
|
import { isCosmeticOnlyJsonSchemaChange } from './diff-json-schema.js';
|
|
2
3
|
import { loadDockerIgnore } from './dockerignore.js';
|
|
3
4
|
import { logger } from './logger.js';
|
|
@@ -24,12 +25,12 @@ const isIgnoredTopLevelFile = (filePath, contextPath) => {
|
|
|
24
25
|
* 2. Context matching (actorConfig.contextPaths) → outside-context if no match
|
|
25
26
|
* 3. Hardcoded ignore list, checked against the path hoisted relative to the matched context entry → ignored
|
|
26
27
|
* 4. .dockerignore filtering (patterns relative to dockerContextDir), skipped for the actor's own `.actor/`
|
|
27
|
-
* dir → ignored if matched
|
|
28
|
+
* dir and for test files → ignored if matched
|
|
28
29
|
* 5. README.md by filename → cosmetic if inside the actor's own folder, otherwise ignored
|
|
29
30
|
* 6. .json inside the actor's own `.actor/` dir with only cosmetic schema diffs → cosmetic (semantically verified)
|
|
30
31
|
* 7. Everything else → functional
|
|
31
32
|
*/
|
|
32
|
-
const classifyFileChange = async (changedFile, actorConfig, commits, dockerIgnoreMatcher) => {
|
|
33
|
+
const classifyFileChange = async (changedFile, actorConfig, commits, dockerIgnoreMatcher, isTestFile) => {
|
|
33
34
|
const lowercaseFilePath = changedFile.path.toLowerCase();
|
|
34
35
|
// TODO: hardcodes that there's a single repo-wide changelog belonging to every actor. Should instead
|
|
35
36
|
// be derived from parsing actor.json (readme, changelog, schema paths), see
|
|
@@ -48,7 +49,8 @@ const classifyFileChange = async (changedFile, actorConfig, commits, dockerIgnor
|
|
|
48
49
|
// .actor/ can legitimately be listed in .dockerignore (the Apify platform evaluates it before
|
|
49
50
|
// the Docker build, so excluding it from the build context is a valid caching optimization) —
|
|
50
51
|
// that shouldn't cause changes to .actor/ itself to be ignored here.
|
|
51
|
-
|
|
52
|
+
// Test files are often in .dockerignore too, but a change to them must still build and test.
|
|
53
|
+
if (!isUnderActorDotDir && !isTestFile(changedFile.path) && dockerIgnoreMatcher(changedFile.path)) {
|
|
52
54
|
return { impact: 'ignored' };
|
|
53
55
|
}
|
|
54
56
|
const isInActorFolder = changedFile.isWithin(actorConfig.folder);
|
|
@@ -116,8 +118,10 @@ const logChangeGroups = (groups) => {
|
|
|
116
118
|
}
|
|
117
119
|
}
|
|
118
120
|
};
|
|
119
|
-
export const getChangedActors = async ({ filepathsChanged, actorConfigs, isLatest = false, commits, }) => {
|
|
121
|
+
export const getChangedActors = async ({ filepathsChanged, actorConfigs, isLatest = false, commits, testFilesGlob, }) => {
|
|
120
122
|
const actorsChangedMap = new Map();
|
|
123
|
+
const testFilesInContext = new Set();
|
|
124
|
+
const isTestFile = testFilesGlob ? picomatch(testFilesGlob, { nocase: true, dot: true }) : () => false;
|
|
121
125
|
for (const actorConfig of actorConfigs) {
|
|
122
126
|
const dockerIgnoreMatcher = loadDockerIgnore(actorConfig.dockerContextDir);
|
|
123
127
|
for (const originalFilePath of filepathsChanged) {
|
|
@@ -125,7 +129,10 @@ export const getChangedActors = async ({ filepathsChanged, actorConfigs, isLates
|
|
|
125
129
|
if (isExcludedBySibling(filePath, actorConfig, actorConfigs)) {
|
|
126
130
|
continue;
|
|
127
131
|
}
|
|
128
|
-
const change = await classifyFileChange(filePath, actorConfig, commits, dockerIgnoreMatcher);
|
|
132
|
+
const change = await classifyFileChange(filePath, actorConfig, commits, dockerIgnoreMatcher, isTestFile);
|
|
133
|
+
if (change.impact !== 'outside-context' && isTestFile(originalFilePath)) {
|
|
134
|
+
testFilesInContext.add(originalFilePath);
|
|
135
|
+
}
|
|
129
136
|
if (change.impact === 'ignored' || change.impact === 'outside-context')
|
|
130
137
|
continue;
|
|
131
138
|
if (change.impact === 'cosmetic' && !isLatest)
|
|
@@ -141,6 +148,10 @@ export const getChangedActors = async ({ filepathsChanged, actorConfigs, isLates
|
|
|
141
148
|
const fileToActors = buildFileToActorsMap(actorsChangedMap);
|
|
142
149
|
const groups = groupFilesByActorSet(fileToActors);
|
|
143
150
|
logChangeGroups(groups);
|
|
151
|
+
for (const testFile of filepathsChanged.filter((filePath) => isTestFile(filePath) && !testFilesInContext.has(filePath))) {
|
|
152
|
+
logger.warn(`[DIFF]: Test file ${testFile} is outside every Actor's context, so changing only it builds and tests nothing. ` +
|
|
153
|
+
`Add its folder to "overrideActorContext" of the Actors it tests.`);
|
|
154
|
+
}
|
|
144
155
|
if (actorsChanged.length > 0) {
|
|
145
156
|
const actors = actorsChanged.map((config) => config.actorFullName);
|
|
146
157
|
logger.info(`[DIFF]: Actors to be built and tested: ${actors.join(', ')}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff-changes.js","sourceRoot":"","sources":["../../bin/diff-changes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAA4B,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAoB,YAAY,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"diff-changes.js","sourceRoot":"","sources":["../../bin/diff-changes.ts"],"names":[],"mappings":"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"}
|
package/dist/bin/main.js
CHANGED
|
@@ -74,6 +74,7 @@ const resolveChangedActors = async (config, { isLatest }) => {
|
|
|
74
74
|
filepathsChanged: branchOnlyFiles,
|
|
75
75
|
actorConfigs,
|
|
76
76
|
commits: allBranchCommits,
|
|
77
|
+
testFilesGlob: config.testFilesGlob,
|
|
77
78
|
});
|
|
78
79
|
if (branchOnlyActorsChanged.length === 0) {
|
|
79
80
|
logger.info('[MERGE-FROM-TARGET-OPTIMIZATION]: Branch itself has no functional changes, skipping tests');
|
|
@@ -84,7 +85,13 @@ const resolveChangedActors = async (config, { isLatest }) => {
|
|
|
84
85
|
// If the optimization doesn't apply, we check all branch commits including merges for full coverage. We don't reuse the merge optimization results because here we can apply baseCommit and check merge commits (they might be functional or just cosmetic)
|
|
85
86
|
const commits = await getCommits(config);
|
|
86
87
|
const changedFiles = await getChangedFiles(commits);
|
|
87
|
-
return getChangedActors({
|
|
88
|
+
return getChangedActors({
|
|
89
|
+
filepathsChanged: changedFiles,
|
|
90
|
+
actorConfigs,
|
|
91
|
+
isLatest,
|
|
92
|
+
commits,
|
|
93
|
+
testFilesGlob: config.testFilesGlob,
|
|
94
|
+
});
|
|
88
95
|
};
|
|
89
96
|
await yargs()
|
|
90
97
|
.scriptName('public-actors-utils')
|
|
@@ -120,7 +127,12 @@ await yargs()
|
|
|
120
127
|
.option('workflow-name', { type: 'string' }), async (args) => {
|
|
121
128
|
await reportTestResults(args);
|
|
122
129
|
})
|
|
123
|
-
.command('build', '', (y) => y
|
|
130
|
+
.command('build', '', (y) => y
|
|
131
|
+
.options(gitRangeOptions)
|
|
132
|
+
.options(actorSelectionOptions)
|
|
133
|
+
.options(buildOptions)
|
|
134
|
+
.options(repoUrlOptions)
|
|
135
|
+
.option('test-files-glob', { type: 'string' }), async (config) => {
|
|
124
136
|
const actorsChanged = await resolveChangedActors(config, { isLatest: false });
|
|
125
137
|
const builds = await runBuilds({
|
|
126
138
|
...(await resolveRepoUrl(config.repoUrl)),
|
package/dist/bin/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../bin/main.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../bin/main.ts"],"names":[],"mappings":"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"}
|
package/dist/bin/types.d.ts
CHANGED
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,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE9E,MAAM,WAAW,MAAM;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../bin/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE9E,MAAM,WAAW,MAAM;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;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;AAEF,MAAM,WAAW,SAAS;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,cAAc,CAAC;IAC1B,gBAAgB,EAAE,WAAW,CAAC;IAC9B,YAAY,EAAE,WAAW,EAAE,CAAC;CAC/B"}
|
|
@@ -48,7 +48,7 @@ export const extendExpect = (expect) => {
|
|
|
48
48
|
};
|
|
49
49
|
},
|
|
50
50
|
toBeNonEmptyObject: (actual) => {
|
|
51
|
-
const isObject = typeof actual === 'object' && !Array.isArray(actual);
|
|
51
|
+
const isObject = typeof actual === 'object' && !Array.isArray(actual) && actual !== null;
|
|
52
52
|
const isNonEmpty = Object.entries(actual).length > 0;
|
|
53
53
|
const pass = isObject && isNonEmpty;
|
|
54
54
|
return {
|
|
@@ -57,7 +57,7 @@ export const extendExpect = (expect) => {
|
|
|
57
57
|
};
|
|
58
58
|
},
|
|
59
59
|
toBeObject: (actual) => {
|
|
60
|
-
const pass = typeof actual === 'object' && !Array.isArray(actual);
|
|
60
|
+
const pass = typeof actual === 'object' && !Array.isArray(actual) && actual !== null;
|
|
61
61
|
return {
|
|
62
62
|
pass,
|
|
63
63
|
message: () => `Expected "${actual}" to be an object`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extend-expect.js","sourceRoot":"","sources":["../../lib/extend-expect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAIrD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAoB,EAAgB,EAAE;IAC/D,MAAM,CAAC,MAAM,CAAC;QACV,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE;YAClB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACnC,OAAO;gBACH,IAAI;gBACJ,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,MAAM,iBAAiB;aACtD,CAAC;QACN,CAAC;QACD,WAAW,EAAE,CAAC,QAAQ,EAAE,EAAE;YACtB,MAAM,MAAM,GAAG,OAAO,QAAQ,CAAC;YAC/B,MAAM,QAAQ,GAAG,SAAS,CAAC;YAC3B,OAAO;gBACH,IAAI,EAAE,MAAM,KAAK,QAAQ;gBACzB,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,MAAM,mBAAmB;gBACrD,QAAQ,EAAE,SAAS;aACtB,CAAC;QACN,CAAC;QACD,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE;YACvB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;YAC1D,OAAO;gBACH,IAAI;gBACJ,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,MAAM,uBAAuB;gBACxD,MAAM;gBACN,QAAQ,EAAE,EAAE;aACf,CAAC;QACN,CAAC;QACD,iBAAiB,EAAE,CAAC,MAAM,EAAE,EAAE;YAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YACxD,OAAO;gBACH,IAAI;gBACJ,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,MAAM,0BAA0B;aAC9D,CAAC;QACN,CAAC;QACD,kBAAkB,EAAE,CAAC,MAAM,EAAE,EAAE;YAC3B,MAAM,IAAI,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAC7D,OAAO;gBACH,IAAI;gBACJ,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,MAAM,4BAA4B;aACjE,CAAC;QACN,CAAC;QACD,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YACnB,MAAM,IAAI,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC;YACxC,OAAO;gBACH,IAAI;gBACJ,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,MAAM,kBAAkB;aACvD,CAAC;QACN,CAAC;QACD,kBAAkB,EAAE,CAAC,MAAM,EAAE,EAAE;YAC3B,MAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"extend-expect.js","sourceRoot":"","sources":["../../lib/extend-expect.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,6 +42,7 @@ const amazonActor = actorConfig('junglee/amazon-crawler', 'actors/junglee_Amazon
|
|
|
42
42
|
const commits = [{ sha: 'Commit1', author: '', date: '', message: '' }];
|
|
43
43
|
describe('getChangedActors', () => {
|
|
44
44
|
beforeEach(() => {
|
|
45
|
+
vi.restoreAllMocks();
|
|
45
46
|
vi.spyOn(DiffJsonSchema, 'isCosmeticOnlyJsonSchemaChange').mockResolvedValue(false);
|
|
46
47
|
});
|
|
47
48
|
it('returns empty array when no files changed', async () => {
|
|
@@ -324,6 +325,65 @@ describe('getChangedActors', () => {
|
|
|
324
325
|
});
|
|
325
326
|
expect(result).toEqual([miniActor]);
|
|
326
327
|
});
|
|
328
|
+
it('test file listed in .dockerignore triggers a build when it matches the test files glob', async () => {
|
|
329
|
+
vi.spyOn(Dockerignore, 'loadDockerIgnore').mockReturnValue((filePath) => filePath.startsWith('test/'));
|
|
330
|
+
const result = await getChangedActors({
|
|
331
|
+
filepathsChanged: ['test/platform/daily/foo.test.ts'],
|
|
332
|
+
actorConfigs: [miniActor],
|
|
333
|
+
commits,
|
|
334
|
+
testFilesGlob: 'test/platform/**',
|
|
335
|
+
});
|
|
336
|
+
expect(result).toEqual([miniActor]);
|
|
337
|
+
});
|
|
338
|
+
it('test file listed in .dockerignore stays ignored without a test files glob', async () => {
|
|
339
|
+
vi.spyOn(Dockerignore, 'loadDockerIgnore').mockReturnValue((filePath) => filePath.startsWith('test/'));
|
|
340
|
+
const result = await getChangedActors({
|
|
341
|
+
filepathsChanged: ['test/platform/daily/foo.test.ts'],
|
|
342
|
+
actorConfigs: [miniActor],
|
|
343
|
+
commits,
|
|
344
|
+
});
|
|
345
|
+
expect(result).toEqual([]);
|
|
346
|
+
});
|
|
347
|
+
it('test files glob matches case-insensitively and does not bypass .dockerignore for other files', async () => {
|
|
348
|
+
vi.spyOn(Dockerignore, 'loadDockerIgnore').mockReturnValue(() => true);
|
|
349
|
+
const result = await getChangedActors({
|
|
350
|
+
filepathsChanged: ['Test/Platform/Foo.test.ts'],
|
|
351
|
+
actorConfigs: [miniActor],
|
|
352
|
+
commits,
|
|
353
|
+
testFilesGlob: 'test/platform/**',
|
|
354
|
+
});
|
|
355
|
+
expect(result).toEqual([miniActor]);
|
|
356
|
+
expect(await getChangedActors({
|
|
357
|
+
filepathsChanged: ['actors/foo_bar/node_modules/foo.js'],
|
|
358
|
+
actorConfigs: [miniActor],
|
|
359
|
+
commits,
|
|
360
|
+
testFilesGlob: 'test/platform/**',
|
|
361
|
+
})).toEqual([]);
|
|
362
|
+
});
|
|
363
|
+
it('test file outside an actor context still does not trigger it', async () => {
|
|
364
|
+
vi.spyOn(Dockerignore, 'loadDockerIgnore').mockReturnValue(() => true);
|
|
365
|
+
const result = await getChangedActors({
|
|
366
|
+
filepathsChanged: ['test/platform/daily/foo.test.ts'],
|
|
367
|
+
actorConfigs: [standaloneActor],
|
|
368
|
+
commits,
|
|
369
|
+
testFilesGlob: 'test/platform/**',
|
|
370
|
+
});
|
|
371
|
+
expect(result).toEqual([]);
|
|
372
|
+
});
|
|
373
|
+
it('test file listed in .dockerignore triggers an actor whose overrideActorContext includes it', async () => {
|
|
374
|
+
vi.spyOn(Dockerignore, 'loadDockerIgnore').mockReturnValue(() => true);
|
|
375
|
+
const actorWithTests = {
|
|
376
|
+
...standaloneActor,
|
|
377
|
+
contextPaths: [...standaloneActor.contextPaths, new RelativeDir('test')],
|
|
378
|
+
};
|
|
379
|
+
const result = await getChangedActors({
|
|
380
|
+
filepathsChanged: ['test/platform/standalone.test.ts'],
|
|
381
|
+
actorConfigs: [actorWithTests],
|
|
382
|
+
commits,
|
|
383
|
+
testFilesGlob: 'test/platform/**',
|
|
384
|
+
});
|
|
385
|
+
expect(result).toEqual([actorWithTests]);
|
|
386
|
+
});
|
|
327
387
|
it('JSON file in context but outside actor folder is functional (not checked for cosmetic)', async () => {
|
|
328
388
|
const result = await getChangedActors({
|
|
329
389
|
filepathsChanged: ['lib/config.json'],
|
|
@@ -396,6 +456,7 @@ describe('getChangedActors logging', () => {
|
|
|
396
456
|
beforeEach(() => {
|
|
397
457
|
vi.spyOn(DiffJsonSchema, 'isCosmeticOnlyJsonSchemaChange').mockResolvedValue(false);
|
|
398
458
|
vi.spyOn(logger, 'info').mockImplementation(() => undefined);
|
|
459
|
+
vi.spyOn(logger, 'warn').mockImplementation(() => undefined);
|
|
399
460
|
});
|
|
400
461
|
it('logs a single "specific" group for a single actor with one functional file', async () => {
|
|
401
462
|
await getChangedActors({
|
|
@@ -434,6 +495,36 @@ describe('getChangedActors logging', () => {
|
|
|
434
495
|
'[DIFF]: Actors to be built and tested: team/actor-a, team/actor-b',
|
|
435
496
|
]);
|
|
436
497
|
});
|
|
498
|
+
const outsideContextWarning = (testFile) => `[DIFF]: Test file ${testFile} is outside every Actor's context, so changing only it builds and tests nothing. ` +
|
|
499
|
+
'Add its folder to "overrideActorContext" of the Actors it tests.';
|
|
500
|
+
it('warns about a changed test file outside every Actor context', async () => {
|
|
501
|
+
await getChangedActors({
|
|
502
|
+
filepathsChanged: ['test/platform/standalone.test.ts'],
|
|
503
|
+
actorConfigs: [standaloneActor],
|
|
504
|
+
commits,
|
|
505
|
+
testFilesGlob: 'test/platform/**',
|
|
506
|
+
});
|
|
507
|
+
expect(logger.warn).toHaveBeenCalledWith(outsideContextWarning('test/platform/standalone.test.ts'));
|
|
508
|
+
});
|
|
509
|
+
it('still warns when the same push also rebuilds an Actor', async () => {
|
|
510
|
+
const result = await getChangedActors({
|
|
511
|
+
filepathsChanged: ['test/platform/standalone.test.ts', 'standalone-actors/standalone/src/main.ts'],
|
|
512
|
+
actorConfigs: [standaloneActor],
|
|
513
|
+
commits,
|
|
514
|
+
testFilesGlob: 'test/platform/**',
|
|
515
|
+
});
|
|
516
|
+
expect(result).toEqual([standaloneActor]);
|
|
517
|
+
expect(logger.warn).toHaveBeenCalledWith(outsideContextWarning('test/platform/standalone.test.ts'));
|
|
518
|
+
});
|
|
519
|
+
it('does not warn about test files inside an Actor context, even cosmetic ones', async () => {
|
|
520
|
+
await getChangedActors({
|
|
521
|
+
filepathsChanged: ['test/platform/foo.test.ts', 'test/platform/README.md', 'test/platform/CHANGELOG.md'],
|
|
522
|
+
actorConfigs: [miniActor],
|
|
523
|
+
commits,
|
|
524
|
+
testFilesGlob: 'test/platform/**',
|
|
525
|
+
});
|
|
526
|
+
expect(logger.warn).not.toHaveBeenCalled();
|
|
527
|
+
});
|
|
437
528
|
it('logs no group lines when zero actors changed', async () => {
|
|
438
529
|
await getChangedActors({
|
|
439
530
|
filepathsChanged: ['.gitignore', '.prettierrc'],
|