apify-test-tools 0.10.1-beta.3 → 0.10.1-beta.4

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.
Files changed (140) hide show
  1. package/.github/workflows/public_platform-tests-claude-investigate-and-fix.yaml +7 -2
  2. package/CHANGELOG.md +6 -0
  3. package/CONTRIBUTING.md +9 -0
  4. package/bin/build-from-local.ts +8 -7
  5. package/bin/build.ts +22 -21
  6. package/bin/diff-changes.ts +11 -10
  7. package/bin/diff-json-schema.ts +14 -12
  8. package/bin/git.ts +90 -43
  9. package/bin/logger.ts +23 -0
  10. package/bin/main.ts +49 -35
  11. package/bin/output.ts +6 -0
  12. package/bin/slack.ts +8 -7
  13. package/bin/test-report.ts +22 -21
  14. package/bin/utils/config/actor-json.ts +84 -0
  15. package/bin/utils/config/load-config.ts +46 -46
  16. package/bin/utils/config/parser.ts +33 -28
  17. package/bin/utils/config/structures/base.ts +7 -0
  18. package/bin/utils/json-file.ts +11 -14
  19. package/bin/utils/path/repo-relative.ts +156 -0
  20. package/bin/utils/path/schema.ts +18 -0
  21. package/bin/utils.ts +61 -34
  22. package/dist/bin/build-from-local.d.ts +1 -1
  23. package/dist/bin/build-from-local.d.ts.map +1 -1
  24. package/dist/bin/build-from-local.js +8 -7
  25. package/dist/bin/build-from-local.js.map +1 -1
  26. package/dist/bin/build.d.ts.map +1 -1
  27. package/dist/bin/build.js +22 -21
  28. package/dist/bin/build.js.map +1 -1
  29. package/dist/bin/diff-changes.d.ts +1 -1
  30. package/dist/bin/diff-changes.d.ts.map +1 -1
  31. package/dist/bin/diff-changes.js +9 -8
  32. package/dist/bin/diff-changes.js.map +1 -1
  33. package/dist/bin/diff-json-schema.d.ts +1 -1
  34. package/dist/bin/diff-json-schema.d.ts.map +1 -1
  35. package/dist/bin/diff-json-schema.js +13 -12
  36. package/dist/bin/diff-json-schema.js.map +1 -1
  37. package/dist/bin/git.d.ts +10 -10
  38. package/dist/bin/git.d.ts.map +1 -1
  39. package/dist/bin/git.js +78 -37
  40. package/dist/bin/git.js.map +1 -1
  41. package/dist/bin/logger.d.ts +11 -0
  42. package/dist/bin/logger.d.ts.map +1 -0
  43. package/dist/bin/logger.js +20 -0
  44. package/dist/bin/logger.js.map +1 -0
  45. package/dist/bin/main.d.ts +1 -1
  46. package/dist/bin/main.js +48 -35
  47. package/dist/bin/main.js.map +1 -1
  48. package/dist/bin/output.d.ts +3 -0
  49. package/dist/bin/output.d.ts.map +1 -0
  50. package/dist/bin/output.js +6 -0
  51. package/dist/bin/output.js.map +1 -0
  52. package/dist/bin/slack.d.ts.map +1 -1
  53. package/dist/bin/slack.js +8 -7
  54. package/dist/bin/slack.js.map +1 -1
  55. package/dist/bin/test-report.d.ts.map +1 -1
  56. package/dist/bin/test-report.js +22 -21
  57. package/dist/bin/test-report.js.map +1 -1
  58. package/dist/bin/utils/config/actor-json.d.ts +14 -0
  59. package/dist/bin/utils/config/actor-json.d.ts.map +1 -0
  60. package/dist/bin/utils/config/actor-json.js +60 -0
  61. package/dist/bin/utils/config/actor-json.js.map +1 -0
  62. package/dist/bin/utils/config/load-config.d.ts +12 -2
  63. package/dist/bin/utils/config/load-config.d.ts.map +1 -1
  64. package/dist/bin/utils/config/load-config.js +32 -31
  65. package/dist/bin/utils/config/load-config.js.map +1 -1
  66. package/dist/bin/utils/config/parser.d.ts +4 -12
  67. package/dist/bin/utils/config/parser.d.ts.map +1 -1
  68. package/dist/bin/utils/config/parser.js +24 -23
  69. package/dist/bin/utils/config/parser.js.map +1 -1
  70. package/dist/bin/utils/config/structures/base.d.ts +5 -0
  71. package/dist/bin/utils/config/structures/base.d.ts.map +1 -1
  72. package/dist/bin/utils/config/structures/base.js.map +1 -1
  73. package/dist/bin/utils/json-file.d.ts +3 -2
  74. package/dist/bin/utils/json-file.d.ts.map +1 -1
  75. package/dist/bin/utils/json-file.js +8 -13
  76. package/dist/bin/utils/json-file.js.map +1 -1
  77. package/dist/bin/utils/path/repo-relative.d.ts +35 -0
  78. package/dist/bin/utils/path/repo-relative.d.ts.map +1 -0
  79. package/dist/bin/utils/path/repo-relative.js +137 -0
  80. package/dist/bin/utils/path/repo-relative.js.map +1 -0
  81. package/dist/bin/utils/path/schema.d.ts +7 -0
  82. package/dist/bin/utils/path/schema.d.ts.map +1 -0
  83. package/dist/bin/utils/path/schema.js +16 -0
  84. package/dist/bin/utils/path/schema.js.map +1 -0
  85. package/dist/bin/utils.d.ts +14 -3
  86. package/dist/bin/utils.d.ts.map +1 -1
  87. package/dist/bin/utils.js +52 -29
  88. package/dist/bin/utils.js.map +1 -1
  89. package/dist/test/unit/bin/build-from-local.test.js +3 -39
  90. package/dist/test/unit/bin/build-from-local.test.js.map +1 -1
  91. package/dist/test/unit/bin/diff-changes.test.js +97 -96
  92. package/dist/test/unit/bin/diff-changes.test.js.map +1 -1
  93. package/dist/test/unit/bin/diff.test.js +52 -48
  94. package/dist/test/unit/bin/diff.test.js.map +1 -1
  95. package/dist/test/unit/bin/git-command.test.d.ts +2 -0
  96. package/dist/test/unit/bin/git-command.test.d.ts.map +1 -0
  97. package/dist/test/unit/bin/git-command.test.js +54 -0
  98. package/dist/test/unit/bin/git-command.test.js.map +1 -0
  99. package/dist/test/unit/bin/git.test.js +211 -92
  100. package/dist/test/unit/bin/git.test.js.map +1 -1
  101. package/dist/test/unit/bin/logger.test.d.ts +2 -0
  102. package/dist/test/unit/bin/logger.test.d.ts.map +1 -0
  103. package/dist/test/unit/bin/logger.test.js +44 -0
  104. package/dist/test/unit/bin/logger.test.js.map +1 -0
  105. package/dist/test/unit/bin/logging.test.d.ts +2 -0
  106. package/dist/test/unit/bin/logging.test.d.ts.map +1 -0
  107. package/dist/test/unit/bin/logging.test.js +43 -0
  108. package/dist/test/unit/bin/logging.test.js.map +1 -0
  109. package/dist/test/unit/bin/utils/config/load-config.test.js +47 -25
  110. package/dist/test/unit/bin/utils/config/load-config.test.js.map +1 -1
  111. package/dist/test/unit/bin/utils/config/parser.test.js +64 -19
  112. package/dist/test/unit/bin/utils/config/parser.test.js.map +1 -1
  113. package/dist/test/unit/bin/utils/files.test.js +16 -27
  114. package/dist/test/unit/bin/utils/files.test.js.map +1 -1
  115. package/dist/test/unit/bin/utils/path/repo-relative.test.d.ts +2 -0
  116. package/dist/test/unit/bin/utils/path/repo-relative.test.d.ts.map +1 -0
  117. package/dist/test/unit/bin/utils/path/repo-relative.test.js +196 -0
  118. package/dist/test/unit/bin/utils/path/repo-relative.test.js.map +1 -0
  119. package/dist/test/unit/bin/utils/path/schema.test.d.ts +2 -0
  120. package/dist/test/unit/bin/utils/path/schema.test.d.ts.map +1 -0
  121. package/dist/test/unit/bin/utils/path/schema.test.js +52 -0
  122. package/dist/test/unit/bin/utils/path/schema.test.js.map +1 -0
  123. package/dist/test/unit/should-built-and-test.test.js +40 -38
  124. package/dist/test/unit/should-built-and-test.test.js.map +1 -1
  125. package/dist/tsconfig.tsbuildinfo +1 -1
  126. package/eslint.config.mjs +9 -1
  127. package/package.json +4 -4
  128. package/test/unit/bin/build-from-local.test.ts +3 -53
  129. package/test/unit/bin/diff-changes.test.ts +97 -96
  130. package/test/unit/bin/diff.test.ts +53 -48
  131. package/test/unit/bin/git-command.test.ts +71 -0
  132. package/test/unit/bin/git.test.ts +246 -89
  133. package/test/unit/bin/logger.test.ts +55 -0
  134. package/test/unit/bin/logging.test.ts +52 -0
  135. package/test/unit/bin/utils/config/load-config.test.ts +63 -26
  136. package/test/unit/bin/utils/config/parser.test.ts +81 -27
  137. package/test/unit/bin/utils/files.test.ts +19 -33
  138. package/test/unit/bin/utils/path/repo-relative.test.ts +250 -0
  139. package/test/unit/bin/utils/path/schema.test.ts +65 -0
  140. package/test/unit/should-built-and-test.test.ts +40 -38
package/dist/bin/git.js CHANGED
@@ -1,18 +1,19 @@
1
- import { spawnCommand } from './utils.js';
1
+ import { logger } from './logger.js';
2
+ import { GitCommandError, runGitCommand } from './utils.js';
2
3
  export const GIT_FORMAT_SEPARATOR = '»¦«';
3
4
  const GIT_LOG_FORMAT = ['%H', '%aN<%aE>', '%aD', '%s'].join(GIT_FORMAT_SEPARATOR);
4
5
  /**
5
6
  * Gets the list of changed files between the given commits (inclusive).
6
7
  */
7
- export const getChangedFiles = (commits) => {
8
+ export const getChangedFiles = async (commits) => {
8
9
  // getCommits never returns an empty list (the rerun check returns all commits when the base commit
9
10
  // is the branch HEAD, and an empty git range throws when parsing), so this signals a programmer error
10
11
  if (commits.length === 0) {
11
12
  throw new Error('Cannot get changed files: the commit list is empty. This should never happen.');
12
13
  }
13
- const changedFilesString = spawnCommand(`git diff --name-only ${commits[0].sha}~..${commits[commits.length - 1].sha}`);
14
+ const changedFilesString = await runGitCommand(['diff', '--name-only', `${commits[0].sha}~..${commits[commits.length - 1].sha}`], { operation: 'get the list of changed files between commits' });
14
15
  const changedFiles = changedFilesString.split('\n').filter(Boolean);
15
- console.error(`Changed files (up to 50): ${changedFiles.slice(0, 50).join(', ')}`);
16
+ logger.info(`Changed files (up to 50): ${changedFiles.slice(0, 50).join(', ')}`);
16
17
  return changedFiles;
17
18
  };
18
19
  /**
@@ -20,16 +21,32 @@ export const getChangedFiles = (commits) => {
20
21
  * (i.e. a genuine "merge from target" commit, not a merge of some unrelated branch).
21
22
  * Uses the full targetBranch..sourceBranch range, ignoring baseCommit.
22
23
  */
23
- export const hasMergeFromTarget = (sourceBranch, targetBranch) => {
24
- const mergeShas = spawnCommand(`git log --merges --pretty=format:%H ${targetBranch}..${sourceBranch}`)
24
+ export const hasMergeFromTarget = async (sourceBranch, targetBranch) => {
25
+ const mergeShas = (await runGitCommand(['log', '--merges', '--pretty=format:%H', `${targetBranch}..${sourceBranch}`], {
26
+ operation: 'find merge commits on the source branch that are absent from the target branch',
27
+ }))
25
28
  .split('\n')
26
29
  .filter(Boolean);
27
30
  for (const sha of mergeShas) {
28
- const parents = spawnCommand(`git log -1 --pretty=format:%P ${sha}`).trim().split(' ');
31
+ const parents = (await runGitCommand(['log', '-1', '--pretty=format:%P', sha], {
32
+ operation: 'get parents of a merge commit',
33
+ })).split(' ');
29
34
  for (const parent of parents) {
30
35
  // git merge-base A B outputs the common ancestor.
31
36
  // If that equals A, then A is an ancestor of B (i.e. parent is reachable from targetBranch).
32
- const mergeBase = spawnCommand(`git merge-base ${parent} ${targetBranch}`);
37
+ let mergeBase;
38
+ try {
39
+ mergeBase = await runGitCommand(['merge-base', parent, targetBranch], {
40
+ operation: 'check whether a merge parent is reachable from the target branch',
41
+ });
42
+ }
43
+ catch (error) {
44
+ // Exit code 1 on merge-base means the histories have no common ancestor.
45
+ if (error instanceof GitCommandError && error.exitCode === 1) {
46
+ continue;
47
+ }
48
+ throw error;
49
+ }
33
50
  if (mergeBase === parent) {
34
51
  return true;
35
52
  }
@@ -41,8 +58,8 @@ export const hasMergeFromTarget = (sourceBranch, targetBranch) => {
41
58
  * Returns all files touched by non-merge commits on the branch (full history, ignoring baseCommit).
42
59
  * Used to check whether the branch itself has any functional changes, independent of what master merged in.
43
60
  */
44
- export const getBranchOnlyChangedFiles = (sourceBranch, targetBranch) => {
45
- const output = spawnCommand(`git log --no-merges --name-only --pretty=format: ${targetBranch}..${sourceBranch}`);
61
+ export const getBranchOnlyChangedFiles = async (sourceBranch, targetBranch) => {
62
+ const output = await runGitCommand(['log', '--no-merges', '--name-only', '--pretty=format:', `${targetBranch}..${sourceBranch}`], { operation: 'list files changed by non-merge commits on the source branch' });
46
63
  return output.split('\n').filter(Boolean);
47
64
  };
48
65
  const SHA_REGEX = /^[0-9a-f]{40}$/i;
@@ -66,8 +83,9 @@ export const parseBaseCommit = (shaOrCommit) => {
66
83
  }
67
84
  return sha;
68
85
  };
69
- const fetchAllBranchCommits = (sourceBranch, targetBranch) => {
70
- const commitsStrings = spawnCommand(`git log --pretty=format:'${GIT_LOG_FORMAT}' ${targetBranch}..${sourceBranch}`).split('\n');
86
+ const fetchAllBranchCommits = async (sourceBranch, targetBranch) => {
87
+ const output = await runGitCommand(['log', `--pretty=format:${GIT_LOG_FORMAT}`, `${targetBranch}..${sourceBranch}`], { operation: 'list commits reachable from the source ref but absent from the target ref' });
88
+ const commitsStrings = output.split('\n');
71
89
  const commits = commitsStrings.map((commitString) => parseCommit(commitString));
72
90
  commits.reverse();
73
91
  return commits;
@@ -76,27 +94,27 @@ const fetchAllBranchCommits = (sourceBranch, targetBranch) => {
76
94
  * Gets the commits between sourceBranch and targetBranch (exclusive).
77
95
  * - If baseCommit is provided, only returns commits after the baseCommit.
78
96
  */
79
- export const getCommits = ({ sourceBranch, targetBranch, baseCommit, }) => {
97
+ export const getCommits = async ({ sourceBranch, targetBranch, baseCommit, }) => {
80
98
  const baseCommitSha = parseBaseCommit(baseCommit);
81
- const commits = fetchAllBranchCommits(sourceBranch, targetBranch);
99
+ const commits = await fetchAllBranchCommits(sourceBranch, targetBranch);
82
100
  // The last validated (base) commit being the branch HEAD means nothing new was pushed since the last
83
101
  // validation — the dev reran the workflow (or force-pushed to the same state) to trigger a clean test
84
102
  const headSha = commits[commits.length - 1]?.sha;
85
103
  if (baseCommitSha !== undefined && baseCommitSha === headSha) {
86
- console.error(`Detected rerun with the same commit that we already validated. This usually means the user wants to rerun the Action from scratch, ignoring last validated commit ${baseCommitSha} and returning all commits`);
87
- console.error(`Commits being returned: ${commits.map((c) => c.sha).join(', ')}`);
104
+ logger.info(`Detected rerun with the same commit that we already validated. This usually means the user wants to rerun the Action from scratch, ignoring last validated commit ${baseCommitSha} and returning all commits`);
105
+ logger.info(`Commits being returned: ${commits.map((c) => c.sha).join(', ')}`);
88
106
  return commits;
89
107
  }
90
108
  const baseCommitIndex = commits.findIndex((commit) => commit.sha === baseCommitSha);
91
109
  const hasBaseCommit = baseCommitIndex !== -1;
92
110
  if (hasBaseCommit) {
93
111
  const commitsUpToBaseCommit = commits.slice(baseCommitIndex + 1);
94
- console.error(`Found base commit ${baseCommitSha} at index ${baseCommitIndex}, returning ${commitsUpToBaseCommit.length} commits after it`);
95
- console.error(`Commits being returned: ${commitsUpToBaseCommit.map((c) => c.sha).join(', ')}`);
112
+ logger.info(`Found base commit ${baseCommitSha} at index ${baseCommitIndex}, returning ${commitsUpToBaseCommit.length} commits after it`);
113
+ logger.info(`Commits being returned: ${commitsUpToBaseCommit.map((c) => c.sha).join(', ')}`);
96
114
  return commitsUpToBaseCommit;
97
115
  }
98
- console.error(`Base commit ${baseCommitSha} not found in the commit range, returning all ${commits.length} commits`);
99
- console.error(`Commits being returned: ${commits.map((c) => c.sha).join(', ')}`);
116
+ logger.info(`Base commit ${baseCommitSha} not found in the commit range, returning all ${commits.length} commits`);
117
+ logger.info(`Commits being returned: ${commits.map((c) => c.sha).join(', ')}`);
100
118
  return commits;
101
119
  };
102
120
  export const parseCommit = (commitString) => {
@@ -116,8 +134,10 @@ export const parseCommit = (commitString) => {
116
134
  * Returns the currently checked-out branch. Release builds point the Actor version at this branch,
117
135
  * so a detached HEAD (no branch to point at) is an error rather than a guess.
118
136
  */
119
- export const getCurrentBranch = () => {
120
- const branch = spawnCommand('git rev-parse --abbrev-ref HEAD');
137
+ export const getCurrentBranch = async () => {
138
+ const branch = await runGitCommand(['rev-parse', '--abbrev-ref', 'HEAD'], {
139
+ operation: 'determine the current branch for release',
140
+ });
121
141
  if (branch === 'HEAD') {
122
142
  throw new Error('Cannot determine the branch to release: HEAD is detached. Check out the branch you want to release.');
123
143
  }
@@ -127,16 +147,19 @@ export const getCurrentBranch = () => {
127
147
  * Reads the repository URL from the `origin` remote, rewritten to the SSH form the Apify platform
128
148
  * uses for Git repo sources, e.g. git@github.com:apify-store/google-maps
129
149
  */
130
- const getOriginRepoUrl = () => {
131
- return spawnCommand('git remote get-url origin').replace(/^https:\/\/github\.com\//, 'git@github.com:');
150
+ const getOriginRepoUrl = async () => {
151
+ const rawUrl = await runGitCommand(['remote', 'get-url', 'origin'], {
152
+ operation: 'read the origin repository URL',
153
+ });
154
+ return rawUrl.replace(/^https:\/\/github\.com\//, 'git@github.com:');
132
155
  };
133
156
  /**
134
157
  * Picks the repo URL to build from. By default it's the `origin` remote, and runBuilds then checks it against
135
158
  * each Actor's default version, so a fork or mirror remote can't repoint a published Actor. An explicit
136
159
  * --repo-url skips that check: passing it is how you move an Actor to another repository on purpose.
137
160
  */
138
- export const resolveRepoUrl = (explicitRepoUrl) => ({
139
- repoUrl: explicitRepoUrl ?? getOriginRepoUrl(),
161
+ export const resolveRepoUrl = async (explicitRepoUrl) => ({
162
+ repoUrl: explicitRepoUrl ?? (await getOriginRepoUrl()),
140
163
  shouldVerifyRepoUrl: explicitRepoUrl === undefined,
141
164
  });
142
165
  /**
@@ -167,7 +190,7 @@ const ZERO_SHA_REGEX = /^0{40}$/;
167
190
  * Unlike the PR path (getCommits), there is no lenient fallback. Falling back to "everything"
168
191
  * would rebuild the latest build of every Actor and post it to Slack, so every problem is an error.
169
192
  */
170
- export const resolveReleaseBaseCommit = (baseCommit) => {
193
+ export const resolveReleaseBaseCommit = async (baseCommit) => {
171
194
  const sha = parseBaseCommit(baseCommit);
172
195
  if (!sha) {
173
196
  throw new Error('--base-commit is required for release. See the README section "Releasing Actors".');
@@ -176,13 +199,27 @@ export const resolveReleaseBaseCommit = (baseCommit) => {
176
199
  throw new Error(`Base commit is ${sha}, which means the branch was just created and there is no previous release to diff against. ` +
177
200
  `Rerun with --base-commit set to the last commit before the changes you want to release.`);
178
201
  }
179
- // --quiet makes rev-parse print nothing (instead of an error) when the commit is missing
180
- if (!spawnCommand(`git rev-parse --verify --quiet "${sha}^{commit}"`)) {
202
+ // --quiet suppresses Git's error text for a missing commit, but Git still exits with code 1.
203
+ const verifiedSha = await runGitCommand(['rev-parse', '--verify', '--quiet', `${sha}^{commit}`], {
204
+ operation: 'verify the release base commit in local Git history',
205
+ }).catch((error) => {
206
+ if (error instanceof GitCommandError && error.exitCode === 1)
207
+ return '';
208
+ throw error;
209
+ });
210
+ if (!verifiedSha) {
181
211
  throw new Error(`Base commit ${sha} is not in the local git history. Either the checkout is shallow ` +
182
212
  `(fetch the full history, e.g. fetch-depth: 0 in actions/checkout) or the branch was force-pushed.`);
183
213
  }
184
214
  // git merge-base A B outputs the common ancestor. If that equals A, then A is an ancestor of B.
185
- if (spawnCommand(`git merge-base ${sha} HEAD`) !== sha) {
215
+ const mergeBase = await runGitCommand(['merge-base', verifiedSha, 'HEAD'], {
216
+ operation: 'check whether the release base commit is an ancestor of HEAD',
217
+ }).catch((error) => {
218
+ if (error instanceof GitCommandError && error.exitCode === 1)
219
+ return '';
220
+ throw error;
221
+ });
222
+ if (mergeBase !== sha) {
186
223
  throw new Error(`Base commit ${sha} is not an ancestor of HEAD, most likely because the branch was force-pushed. ` +
187
224
  `The changed files cannot be determined reliably. Rerun with --base-commit set to an ancestor of HEAD ` +
188
225
  `from before the changes you want to release.`);
@@ -191,11 +228,13 @@ export const resolveReleaseBaseCommit = (baseCommit) => {
191
228
  };
192
229
  const CHANGELOG_PATH = 'CHANGELOG.md';
193
230
  /** Returns the lines added to the root CHANGELOG.md between baseSha and HEAD, or null if it didn't change. */
194
- const getChangelogAdditions = (baseSha, changedFiles) => {
231
+ const getChangelogAdditions = async (baseSha, changedFiles) => {
195
232
  if (!changedFiles.includes(CHANGELOG_PATH)) {
196
233
  return null;
197
234
  }
198
- const diff = spawnCommand('git', ['diff', baseSha, 'HEAD', '--', CHANGELOG_PATH]);
235
+ const diff = await runGitCommand(['diff', baseSha, 'HEAD', '--', CHANGELOG_PATH], {
236
+ operation: 'read changelog changes since the last release',
237
+ });
199
238
  const added = [];
200
239
  let startedChangelog = false;
201
240
  for (const line of diff.split('\n')) {
@@ -221,13 +260,15 @@ const getChangelogAdditions = (baseSha, changedFiles) => {
221
260
  * list: with a merge commit, the oldest commit of the merged branch can be older than baseSha, and
222
261
  * diffing from its parent would pull in already-released changes.
223
262
  */
224
- export const getReleaseChanges = (baseSha) => {
225
- if (spawnCommand('git rev-parse HEAD') === baseSha) {
263
+ export const getReleaseChanges = async (baseSha) => {
264
+ if ((await runGitCommand(['rev-parse', 'HEAD'], { operation: 'identify the current release commit' })) === baseSha) {
226
265
  return null;
227
266
  }
228
- const commits = fetchAllBranchCommits('HEAD', baseSha);
229
- const changedFiles = spawnCommand(`git diff --name-only ${baseSha} HEAD`).split('\n').filter(Boolean);
230
- const changelog = getChangelogAdditions(baseSha, changedFiles);
267
+ const commits = await fetchAllBranchCommits('HEAD', baseSha);
268
+ const changedFiles = await runGitCommand(['diff', '--name-only', baseSha, 'HEAD'], {
269
+ operation: 'list files changed since the last release',
270
+ }).then((output) => output.split('\n').filter(Boolean));
271
+ const changelog = await getChangelogAdditions(baseSha, changedFiles);
231
272
  return { commits, changedFiles, changelog };
232
273
  };
233
274
  //# sourceMappingURL=git.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../bin/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../bin/git.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export declare const logLevels: readonly ["debug", "info", "warn", "error", "silent"];
2
+ export type LogLevel = (typeof logLevels)[number];
3
+ /** All diagnostics go to stderr, leaving stdout available for machine-readable results. */
4
+ export declare const logger: {
5
+ setLevel(level: LogLevel): void;
6
+ debug: (...args: unknown[]) => void;
7
+ info: (...args: unknown[]) => void;
8
+ warn: (...args: unknown[]) => void;
9
+ error: (...args: unknown[]) => void;
10
+ };
11
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../bin/logger.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,SAAS,uDAAwD,CAAC;AAC/E,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AASlD,2FAA2F;AAC3F,eAAO,MAAM,MAAM;oBACC,QAAQ,GAAG,IAAI;qBAGd,OAAO,EAAE,KAAG,IAAI;oBACjB,OAAO,EAAE,KAAG,IAAI;oBAChB,OAAO,EAAE,KAAG,IAAI;qBACf,OAAO,EAAE,KAAG,IAAI;CACpC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import process from 'node:process';
2
+ import { formatWithOptions } from 'node:util';
3
+ export const logLevels = ['debug', 'info', 'warn', 'error', 'silent'];
4
+ let currentLevel = 'info';
5
+ const write = (level, args) => {
6
+ if (logLevels.indexOf(level) < logLevels.indexOf(currentLevel))
7
+ return;
8
+ process.stderr.write(`${formatWithOptions({ colors: false }, ...args)}\n`);
9
+ };
10
+ /** All diagnostics go to stderr, leaving stdout available for machine-readable results. */
11
+ export const logger = {
12
+ setLevel(level) {
13
+ currentLevel = level;
14
+ },
15
+ debug: (...args) => write('debug', args),
16
+ info: (...args) => write('info', args),
17
+ warn: (...args) => write('warn', args),
18
+ error: (...args) => write('error', args),
19
+ };
20
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../bin/logger.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC;AAG/E,IAAI,YAAY,GAAa,MAAM,CAAC;AAEpC,MAAM,KAAK,GAAG,CAAC,KAAkC,EAAE,IAAe,EAAE,EAAE;IAClE,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC;QAAE,OAAO;IACvE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,iBAAiB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/E,CAAC,CAAC;AAEF,2FAA2F;AAC3F,MAAM,CAAC,MAAM,MAAM,GAAG;IAClB,QAAQ,CAAC,KAAe;QACpB,YAAY,GAAG,KAAK,CAAC;IACzB,CAAC;IACD,KAAK,EAAE,CAAC,GAAG,IAAe,EAAQ,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;IACzD,IAAI,EAAE,CAAC,GAAG,IAAe,EAAQ,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;IACvD,IAAI,EAAE,CAAC,GAAG,IAAe,EAAQ,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;IACvD,KAAK,EAAE,CAAC,GAAG,IAAe,EAAQ,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;CAC5D,CAAC"}
@@ -1,3 +1,3 @@
1
- #!/usr/bin/env node
1
+ #!/usr/bin/env -S node --no-warnings
2
2
  export {};
3
3
  //# sourceMappingURL=main.d.ts.map
package/dist/bin/main.js CHANGED
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env node
1
+ #!/usr/bin/env -S node --no-warnings
2
2
  import process from 'node:process';
3
3
  import yargs from 'yargs';
4
4
  // eslint-disable-next-line import/extensions --- With .js, it cannot find types
@@ -7,9 +7,15 @@ import { deleteOldBuilds, runBuilds } from './build.js';
7
7
  import { runBuildsFromLocal } from './build-from-local.js';
8
8
  import { getChangedActors } from './diff-changes.js';
9
9
  import { getBranchOnlyChangedFiles, getChangedFiles, getCommits, getCurrentBranch, getReleaseChanges, getRepoName, hasMergeFromTarget, resolveReleaseBaseCommit, resolveRepoUrl, } from './git.js';
10
+ import { logger, logLevels } from './logger.js';
11
+ import { writeJson } from './output.js';
10
12
  import { notifyToSlack } from './slack.js';
11
13
  import { reportTestResults } from './test-report.js';
12
14
  import { readConfigFile } from './utils/config/load-config.js';
15
+ /**
16
+ * Middlewares to be run before every command execution
17
+ */
18
+ const middlewares = [(args) => logger.setLevel(args.logLevel)];
13
19
  /*
14
20
  * Option groups shared across commands. Each is a plain object passed to `.options()`, so a command's
15
21
  * builder composes them by chaining (`y.options(gitRangeOptions).options(actorSelectionOptions)`)
@@ -44,6 +50,12 @@ const buildOptions = {
44
50
  };
45
51
  /** Global flags, available to every command. */
46
52
  const globalOptions = {
53
+ 'log-level': {
54
+ type: 'string',
55
+ choices: logLevels,
56
+ default: 'info',
57
+ describe: 'Minimum diagnostic level written to stderr; silent disables logging',
58
+ },
47
59
  'dry-run': { type: 'boolean', default: false },
48
60
  };
49
61
  const resolveChangedActors = async (config, { isLatest }) => {
@@ -53,52 +65,53 @@ const resolveChangedActors = async (config, { isLatest }) => {
53
65
  // since the branch has no functional changes of its own, there is nothing new to validate.
54
66
  // Exception: if the branch has any functional changes alongside the merge, we must re-test — even
55
67
  // individually validated changes can have novel interactions when combined.
56
- if (hasMergeFromTarget(config.sourceBranch, config.targetBranch)) {
57
- console.error('[MERGE-FROM-TARGET-OPTIMIZATION]: There is merge from target branch, checking if there are no functional changes in our own branch. If so, we can skip tests');
58
- const branchOnlyFiles = getBranchOnlyChangedFiles(config.sourceBranch, config.targetBranch);
68
+ if (await hasMergeFromTarget(config.sourceBranch, config.targetBranch)) {
69
+ logger.info('[MERGE-FROM-TARGET-OPTIMIZATION]: There is merge from target branch, checking if there are no functional changes in our own branch. If so, we can skip tests');
70
+ const branchOnlyFiles = await getBranchOnlyChangedFiles(config.sourceBranch, config.targetBranch);
59
71
  // Omit baseCommit to get full branch history. Validated functional commits can still interact with merged ones
60
- const allBranchCommits = getCommits({ ...config, baseCommit: undefined });
61
- const branchOnlyActorsChanged = getChangedActors({
72
+ const allBranchCommits = await getCommits({ ...config, baseCommit: undefined });
73
+ const branchOnlyActorsChanged = await getChangedActors({
62
74
  filepathsChanged: branchOnlyFiles,
63
75
  actorConfigs,
64
76
  commits: allBranchCommits,
65
77
  });
66
78
  if (branchOnlyActorsChanged.length === 0) {
67
- console.error('[MERGE-FROM-TARGET-OPTIMIZATION]: Branch itself has no functional changes, skipping tests');
79
+ logger.info('[MERGE-FROM-TARGET-OPTIMIZATION]: Branch itself has no functional changes, skipping tests');
68
80
  return [];
69
81
  }
70
- console.error(`[MERGE-FROM-TARGET-OPTIMIZATION]: Branch has ${branchOnlyActorsChanged.length} functional changes, cannot optimize, we continue with full check`);
82
+ logger.info(`[MERGE-FROM-TARGET-OPTIMIZATION]: Branch has ${branchOnlyActorsChanged.length} functional changes, cannot optimize, we continue with full check`);
71
83
  }
72
84
  // 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)
73
- const commits = getCommits(config);
74
- const changedFiles = getChangedFiles(commits);
85
+ const commits = await getCommits(config);
86
+ const changedFiles = await getChangedFiles(commits);
75
87
  return getChangedActors({ filepathsChanged: changedFiles, actorConfigs, isLatest, commits });
76
88
  };
77
89
  await yargs()
78
90
  .scriptName('public-actors-utils')
79
91
  .options(globalOptions)
80
- .command('get-commits', '', (y) => y.options(gitRangeOptions), (args) => {
81
- const commits = getCommits(args);
82
- console.log(JSON.stringify(commits));
92
+ .middleware(middlewares)
93
+ .command('get-commits', '', (y) => y.options(gitRangeOptions), async (args) => {
94
+ const commits = await getCommits(args);
95
+ writeJson(commits);
83
96
  })
84
- .command('get-latest-commit', '', (y) => y.options(gitRangeOptions), (args) => {
85
- const commits = getCommits(args);
97
+ .command('get-latest-commit', '', (y) => y.options(gitRangeOptions), async (args) => {
98
+ const commits = await getCommits(args);
86
99
  if (commits.length > 0) {
87
- console.log(JSON.stringify(commits[commits.length - 1]));
100
+ writeJson(commits[commits.length - 1]);
88
101
  }
89
102
  })
90
- .command('get-changed-files', '', (y) => y.options(gitRangeOptions), (args) => {
91
- const commits = getCommits(args);
92
- const changedFiles = getChangedFiles(commits);
93
- console.log(JSON.stringify(changedFiles));
103
+ .command('get-changed-files', '', (y) => y.options(gitRangeOptions), async (args) => {
104
+ const commits = await getCommits(args);
105
+ const changedFiles = await getChangedFiles(commits);
106
+ writeJson(changedFiles);
94
107
  })
95
108
  .command('get-actor-configs', '', (y) => y.options(actorSelectionOptions), async ({ actors, ignore }) => {
96
109
  const actorConfigs = await readConfigFile({ actors, ignore });
97
- console.log(JSON.stringify(actorConfigs));
110
+ writeJson(actorConfigs);
98
111
  })
99
112
  .command('get-affected-actors', '', (y) => y.options(gitRangeOptions).options(actorSelectionOptions), async (config) => {
100
113
  const actorsChanged = await resolveChangedActors(config, { isLatest: false });
101
- console.log(JSON.stringify(actorsChanged));
114
+ writeJson(actorsChanged);
102
115
  })
103
116
  .command('report-tests', '', (y) => y
104
117
  .option('report-file', { type: 'string', demandOption: true })
@@ -110,13 +123,13 @@ await yargs()
110
123
  .command('build', '', (y) => y.options(gitRangeOptions).options(actorSelectionOptions).options(buildOptions).options(repoUrlOptions), async (config) => {
111
124
  const actorsChanged = await resolveChangedActors(config, { isLatest: false });
112
125
  const builds = await runBuilds({
113
- ...resolveRepoUrl(config.repoUrl),
126
+ ...(await resolveRepoUrl(config.repoUrl)),
114
127
  actorConfigs: actorsChanged,
115
128
  branch: config.sourceBranch.replace('origin/', ''),
116
129
  dryRun: config.dryRun,
117
130
  useDockerCache: config.useDockerCache,
118
131
  });
119
- console.log(JSON.stringify(builds));
132
+ writeJson(builds);
120
133
  })
121
134
  .command('release', '', (y) => y
122
135
  .options(actorSelectionOptions)
@@ -127,18 +140,18 @@ await yargs()
127
140
  .option('base-commit', { type: 'string', demandOption: true })
128
141
  .option('report-slack-channel', { type: 'string' })
129
142
  .option('release-slack-channel', { type: 'string' }), async (args) => {
130
- const baseSha = resolveReleaseBaseCommit(args.baseCommit);
131
- const branch = getCurrentBranch();
132
- const changes = getReleaseChanges(baseSha);
143
+ const baseSha = await resolveReleaseBaseCommit(args.baseCommit);
144
+ const branch = await getCurrentBranch();
145
+ const changes = await getReleaseChanges(baseSha);
133
146
  if (!changes) {
134
- console.error(`HEAD is the base commit ${baseSha}, there is nothing new to release`);
147
+ logger.info(`HEAD is the base commit ${baseSha}, there is nothing new to release`);
135
148
  return;
136
149
  }
137
150
  const { commits, changedFiles, changelog } = changes;
138
- const { repoUrl, shouldVerifyRepoUrl } = resolveRepoUrl(args.repoUrl);
151
+ const { repoUrl, shouldVerifyRepoUrl } = await resolveRepoUrl(args.repoUrl);
139
152
  const isLatest = true;
140
153
  const actorConfigs = await readConfigFile(args);
141
- const actorsChanged = getChangedActors({
154
+ const actorsChanged = await getChangedActors({
142
155
  filepathsChanged: changedFiles,
143
156
  actorConfigs,
144
157
  isLatest,
@@ -154,7 +167,7 @@ await yargs()
154
167
  dryRun,
155
168
  useDockerCache: args.useDockerCache,
156
169
  });
157
- console.error(JSON.stringify(builds));
170
+ logger.info(JSON.stringify(builds));
158
171
  await notifyToSlack({
159
172
  changedFiles,
160
173
  commits,
@@ -170,7 +183,7 @@ await yargs()
170
183
  .command('build-from-local', '', (y) => y.options(actorSelectionOptions), async ({ actors, ignore, dryRun }) => {
171
184
  const actorConfigs = await readConfigFile({ actors, ignore });
172
185
  const builds = await runBuildsFromLocal({ actorConfigs, dryRun });
173
- console.log(JSON.stringify(builds));
186
+ writeJson(builds);
174
187
  })
175
188
  .command('delete-old-builds', '', (y) => y.options(actorSelectionOptions), async ({ actors, ignore }) => {
176
189
  const actorConfigs = await readConfigFile({ actors, ignore });
@@ -183,12 +196,12 @@ await yargs()
183
196
  // or a missing config file) arrive here as `err`. A malformed selection must fail loudly
184
197
  // rather than silently operate on the wrong set of actors — print the message, no stack.
185
198
  if (err) {
186
- console.error(`[ERROR]: ${err.message}`);
199
+ logger.error(`[ERROR]: ${err.message}`);
187
200
  }
188
201
  else {
189
202
  // Argument-parsing/validation failure — keep yargs' usage output.
190
- console.error(yargsInstance.help());
191
- console.error(`\n${msg}`);
203
+ logger.error(yargsInstance.help());
204
+ logger.error(`\n${msg}`);
192
205
  }
193
206
  process.exit(1);
194
207
  })
@@ -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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"}
@@ -0,0 +1,3 @@
1
+ /** CLI results always go to stdout, independently of the diagnostic log level. */
2
+ export declare const writeJson: (value: unknown) => void;
3
+ //# sourceMappingURL=output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../bin/output.ts"],"names":[],"mappings":"AAEA,kFAAkF;AAClF,eAAO,MAAM,SAAS,GAAI,OAAO,OAAO,KAAG,IAE1C,CAAC"}
@@ -0,0 +1,6 @@
1
+ import process from 'node:process';
2
+ /** CLI results always go to stdout, independently of the diagnostic log level. */
3
+ export const writeJson = (value) => {
4
+ process.stdout.write(`${JSON.stringify(value)}\n`);
5
+ };
6
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../bin/output.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,kFAAkF;AAClF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAc,EAAQ,EAAE;IAC9C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACvD,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"slack.d.ts","sourceRoot":"","sources":["../../bin/slack.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGzC,KAAK,oBAAoB,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAKF,eAAO,MAAM,aAAa,GAAU,4GASjC,oBAAoB,kBA4CtB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAU,SAAS,MAAM,EAAE,MAAM,MAAM,EAAE,QAAQ,MAAM,EAAE,EAAE,OAAO,MAAM,kBAUpG,CAAC"}
1
+ {"version":3,"file":"slack.d.ts","sourceRoot":"","sources":["../../bin/slack.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGzC,KAAK,oBAAoB,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAKF,eAAO,MAAM,aAAa,GAAU,4GASjC,oBAAoB,kBA4CtB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAU,SAAS,MAAM,EAAE,MAAM,MAAM,EAAE,QAAQ,MAAM,EAAE,EAAE,OAAO,MAAM,kBAUpG,CAAC"}
package/dist/bin/slack.js CHANGED
@@ -1,19 +1,20 @@
1
1
  import { WebClient } from '@slack/web-api';
2
+ import { logger } from './logger.js';
2
3
  import { getEnvVar } from './utils.js';
3
4
  // Git authors come as "Name<email>", Slack only needs the name
4
5
  const displayName = (author) => author.replace(/\s*<[^>]*>$/, '');
5
6
  export const notifyToSlack = async ({ changedFiles, commits, changelog, repository, dryRun, author, releaseSlackChannel, reportSlackChannel, }) => {
6
7
  const slack = new WebClient(getEnvVar('SLACK_TOKEN_RELEASES_BOT'));
7
8
  if (!changelog) {
8
- console.warn('No new changelog entries found, did you forget to update it?');
9
+ logger.warn('No new changelog entries found, did you forget to update it?');
9
10
  }
10
11
  let shortMessage = `*${repository}* – New release (by ${displayName(author)}):\n\n`;
11
12
  // This one is just for broader public that only cares about public facing changes
12
13
  if (changelog && releaseSlackChannel) {
13
14
  shortMessage += `*Additions to the changelog*:\n\n${changelog}\n`;
14
- console.error(`=========================================`);
15
- console.error(`**Sending slack message to channel**: ${releaseSlackChannel}.\n\n${shortMessage}`);
16
- console.error(`=========================================`);
15
+ logger.info(`=========================================`);
16
+ logger.info(`**Sending slack message to channel**: ${releaseSlackChannel}.\n\n${shortMessage}`);
17
+ logger.info(`=========================================`);
17
18
  if (!dryRun) {
18
19
  await slack.chat.postMessage({
19
20
  channel: releaseSlackChannel,
@@ -28,9 +29,9 @@ export const notifyToSlack = async ({ changedFiles, commits, changelog, reposito
28
29
  const longMessage = `${shortMessage}\n*Commit list*:\n${commitsMessage}\n\n${changedFilesMessage}`;
29
30
  // This one is for devs and project managers that need to know more details
30
31
  if (reportSlackChannel) {
31
- console.error(`=========================================`);
32
- console.error(`Sending slack message to channel: ${reportSlackChannel}.\n\n${longMessage}`);
33
- console.error(`=========================================`);
32
+ logger.info(`=========================================`);
33
+ logger.info(`Sending slack message to channel: ${reportSlackChannel}.\n\n${longMessage}`);
34
+ logger.info(`=========================================`);
34
35
  if (!dryRun) {
35
36
  await slack.chat.postMessage({
36
37
  text: longMessage,