apify-test-tools 0.5.1 → 0.5.3
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/bin/git.ts +19 -34
- package/lib/lib.ts +5 -2
- package/package.json +1 -1
- package/test/unit/bin/git.test.ts +109 -0
- package/dist/bin/build.d.ts +0 -18
- package/dist/bin/build.d.ts.map +0 -1
- package/dist/bin/build.js +0 -229
- package/dist/bin/build.js.map +0 -1
- package/dist/bin/consts.d.ts +0 -4
- package/dist/bin/consts.d.ts.map +0 -1
- package/dist/bin/consts.js +0 -6
- package/dist/bin/consts.js.map +0 -1
- package/dist/bin/git.d.ts +0 -9
- package/dist/bin/git.d.ts.map +0 -1
- package/dist/bin/git.js +0 -61
- package/dist/bin/git.js.map +0 -1
- package/dist/bin/github.d.ts +0 -13
- package/dist/bin/github.d.ts.map +0 -1
- package/dist/bin/github.js +0 -59
- package/dist/bin/github.js.map +0 -1
- package/dist/bin/main.d.ts +0 -3
- package/dist/bin/main.d.ts.map +0 -1
- package/dist/bin/main.js +0 -124
- package/dist/bin/main.js.map +0 -1
- package/dist/bin/slack.d.ts +0 -13
- package/dist/bin/slack.d.ts.map +0 -1
- package/dist/bin/slack.js +0 -51
- package/dist/bin/slack.js.map +0 -1
- package/dist/bin/test-report.d.ts +0 -10
- package/dist/bin/test-report.d.ts.map +0 -1
- package/dist/bin/test-report.js +0 -74
- package/dist/bin/test-report.js.map +0 -1
- package/dist/bin/types.d.ts +0 -89
- package/dist/bin/types.d.ts.map +0 -1
- package/dist/bin/types.js +0 -2
- package/dist/bin/types.js.map +0 -1
- package/dist/bin/utils.d.ts +0 -29
- package/dist/bin/utils.d.ts.map +0 -1
- package/dist/bin/utils.js +0 -169
- package/dist/bin/utils.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -3
- package/dist/index.js.map +0 -1
- package/dist/lib/consts.d.ts +0 -3
- package/dist/lib/consts.d.ts.map +0 -1
- package/dist/lib/consts.js +0 -12
- package/dist/lib/consts.js.map +0 -1
- package/dist/lib/extend-expect.d.ts +0 -3
- package/dist/lib/extend-expect.d.ts.map +0 -1
- package/dist/lib/extend-expect.js +0 -257
- package/dist/lib/extend-expect.js.map +0 -1
- package/dist/lib/lib.d.ts +0 -38
- package/dist/lib/lib.d.ts.map +0 -1
- package/dist/lib/lib.js +0 -215
- package/dist/lib/lib.js.map +0 -1
- package/dist/lib/run-test-result.d.ts +0 -22
- package/dist/lib/run-test-result.d.ts.map +0 -1
- package/dist/lib/run-test-result.js +0 -73
- package/dist/lib/run-test-result.js.map +0 -1
- package/dist/lib/types.d.ts +0 -127
- package/dist/lib/types.d.ts.map +0 -1
- package/dist/lib/types.js +0 -2
- package/dist/lib/types.js.map +0 -1
- package/dist/lib/utils.d.ts +0 -8
- package/dist/lib/utils.d.ts.map +0 -1
- package/dist/lib/utils.js +0 -33
- package/dist/lib/utils.js.map +0 -1
- package/dist/test/unit/custom-matchers.test.d.ts +0 -2
- package/dist/test/unit/custom-matchers.test.d.ts.map +0 -1
- package/dist/test/unit/custom-matchers.test.js +0 -75
- package/dist/test/unit/custom-matchers.test.js.map +0 -1
- package/dist/test/unit/parse-commit.test.d.ts +0 -2
- package/dist/test/unit/parse-commit.test.d.ts.map +0 -1
- package/dist/test/unit/parse-commit.test.js +0 -57
- package/dist/test/unit/parse-commit.test.js.map +0 -1
- package/dist/test/unit/should-built-and-test.test.d.ts +0 -2
- package/dist/test/unit/should-built-and-test.test.d.ts.map +0 -1
- package/dist/test/unit/should-built-and-test.test.js +0 -136
- package/dist/test/unit/should-built-and-test.test.js.map +0 -1
- package/dist/test/unit/test-actor.test.d.ts +0 -2
- package/dist/test/unit/test-actor.test.d.ts.map +0 -1
- package/dist/test/unit/test-actor.test.js +0 -17
- package/dist/test/unit/test-actor.test.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
package/CHANGELOG.md
CHANGED
package/bin/git.ts
CHANGED
|
@@ -4,49 +4,34 @@ import { spawnCommandInGhWorkspace } from './utils.js';
|
|
|
4
4
|
export const GIT_FORMAT_SEPARATOR = '»¦«';
|
|
5
5
|
const GIT_LOG_FORMAT = ['%H', '%aN<%aE>', '%aD', '%s'].join(GIT_FORMAT_SEPARATOR);
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
return commit;
|
|
11
|
-
};
|
|
12
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Gets the list of changed files between the given commits (inclusive).
|
|
9
|
+
*/
|
|
13
10
|
export const getChangedFiles = (commits: Commit[]) => {
|
|
14
|
-
const changedFiles =
|
|
15
|
-
commits.length
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
const changedFiles = spawnCommandInGhWorkspace(
|
|
12
|
+
`git diff --name-only ${commits[0].sha}~..${commits[commits.length - 1].sha}`,
|
|
13
|
+
);
|
|
14
|
+
|
|
18
15
|
return changedFiles.split('\n');
|
|
19
16
|
};
|
|
20
17
|
|
|
18
|
+
/**
|
|
19
|
+
* Gets the commits between sourceBranch and targetBranch (exclusive).
|
|
20
|
+
* - If baseCommit is provided, only returns commits after the baseCommit.
|
|
21
|
+
*/
|
|
21
22
|
export const getCommits = ({ sourceBranch, targetBranch, baseCommit: baseCommitSha }: Config): Commit[] => {
|
|
22
|
-
const targetBranchCommit = getBranchLastCommit(targetBranch);
|
|
23
|
-
const sourceBranchCommit = getBranchLastCommit(sourceBranch);
|
|
24
|
-
let baseCommit: Commit | undefined;
|
|
25
|
-
if (baseCommitSha) {
|
|
26
|
-
try {
|
|
27
|
-
baseCommit = getCommitInfo(baseCommitSha);
|
|
28
|
-
} catch (err) {
|
|
29
|
-
console.warn(`Failed to get base commit "${baseCommitSha}", it will not be used: ${err}`);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
// const baseCommit = baseCommitSha !== undefined ? : undefined;
|
|
33
|
-
// const gitOutputFormat = '{"sha":"%H","author":"%aN<%aE>","date":"%aD","message":"%f"}';
|
|
34
|
-
// console.log(`git log --pretty=format:"${gitOutputFormat}" ${targetBranch}..${sourceBranch}`);
|
|
35
|
-
// return [];
|
|
36
|
-
const base = getBaseCommit(sourceBranchCommit, targetBranchCommit);
|
|
37
23
|
const commitsStrings = spawnCommandInGhWorkspace(
|
|
38
|
-
`git log --pretty=format:'${GIT_LOG_FORMAT}' ${
|
|
24
|
+
`git log --pretty=format:'${GIT_LOG_FORMAT}' ${targetBranch}..${sourceBranch}`,
|
|
39
25
|
).split('\n');
|
|
40
|
-
const commits = commitsStrings.map((commitString) => parseCommit(commitString))
|
|
26
|
+
const commits = commitsStrings.map((commitString) => parseCommit(commitString));
|
|
41
27
|
commits.reverse();
|
|
42
|
-
const baseCommitIndex = baseCommit ? commits.findIndex(({ sha }) => sha === baseCommit.sha) : -1;
|
|
43
|
-
return commits.slice(baseCommitIndex + 1);
|
|
44
|
-
};
|
|
45
28
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
const
|
|
49
|
-
return
|
|
29
|
+
const baseCommitIndex = commits.findIndex((commit) => commit.sha === baseCommitSha);
|
|
30
|
+
|
|
31
|
+
const hasBaseCommit = baseCommitIndex !== -1;
|
|
32
|
+
if (hasBaseCommit) return commits.slice(baseCommitIndex + 1);
|
|
33
|
+
|
|
34
|
+
return commits;
|
|
50
35
|
};
|
|
51
36
|
|
|
52
37
|
export const getCommitInfo = (commitSha: string): Commit => {
|
package/lib/lib.ts
CHANGED
|
@@ -111,7 +111,7 @@ export const testStandbyActor = <I = any, O = any>(
|
|
|
111
111
|
const runs = (await apifyClient.task(taskId).runs().list()).items;
|
|
112
112
|
for (const run of runs) {
|
|
113
113
|
const runLink = generateRunLink(run);
|
|
114
|
-
await annotate(runLink
|
|
114
|
+
await annotate(`${name} - ${runLink}`, 'run_link');
|
|
115
115
|
}
|
|
116
116
|
|
|
117
117
|
if (taskId) {
|
|
@@ -191,6 +191,9 @@ const createStandbyTask = async (actorNameOrId: string, buildNumber?: string): P
|
|
|
191
191
|
throw new Error(`Actor "${actorNameOrId} doesn't contain actorStandby options`);
|
|
192
192
|
}
|
|
193
193
|
const { isEnabled, ...defaultActorStandby } = actorInfo.actorStandby;
|
|
194
|
+
// @ts-expect-error This is not typed properly in ApifyClient, we need to remove it or API fails
|
|
195
|
+
delete defaultActorStandby.disableStandbyFieldsOverride
|
|
196
|
+
|
|
194
197
|
const build = buildNumber ?? defaultActorStandby.build;
|
|
195
198
|
|
|
196
199
|
const actorStandbyOptions: ActorStandby = {
|
|
@@ -253,7 +256,7 @@ const createStartRunFn = <T>(actorNameOrId: string, testContext: TestContext) =>
|
|
|
253
256
|
const run = await actor.call(actorInput, { build, ...options });
|
|
254
257
|
|
|
255
258
|
const runLink = generateRunLink(run);
|
|
256
|
-
await annotate(runLink
|
|
259
|
+
await annotate(`${task.name} - ${runLink}`, 'run_link');
|
|
257
260
|
// @ts-expect-error: `TaskMeta` cannot be retyped
|
|
258
261
|
task.meta = {
|
|
259
262
|
runId: run.id,
|
package/package.json
CHANGED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { beforeEach, describe, expect, it, MockInstance, vi } from 'vitest';
|
|
2
|
+
import { getChangedFiles, getCommits } from '../../../bin/git.js';
|
|
3
|
+
import * as Utils from '../../../bin/utils.js';
|
|
4
|
+
|
|
5
|
+
describe('getCommits', () => {
|
|
6
|
+
const sourceBranch = 'feature-branch';
|
|
7
|
+
const targetBranch = 'main';
|
|
8
|
+
|
|
9
|
+
const commit1 = 'Commit1»¦«Author1»¦«Date1»¦«First Change On Feature';
|
|
10
|
+
const commit2 = 'Commit2»¦«Author1»¦«Date2»¦«Second Change On Feature';
|
|
11
|
+
const commit3 = 'Commit3»¦«Author1»¦«Date3»¦«Third Change On Feature';
|
|
12
|
+
|
|
13
|
+
let gitCommandSpy: MockInstance;
|
|
14
|
+
|
|
15
|
+
beforeEach(() => {
|
|
16
|
+
gitCommandSpy = vi
|
|
17
|
+
.spyOn(Utils, 'spawnCommandInGhWorkspace')
|
|
18
|
+
.mockReturnValue(`${commit3}\n${commit2}\n${commit1}`);
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
it('should return commits between source and target branches', () => {
|
|
22
|
+
// Act
|
|
23
|
+
const commits = getCommits({ sourceBranch, targetBranch });
|
|
24
|
+
|
|
25
|
+
// Assert
|
|
26
|
+
expect(commits).toStrictEqual([
|
|
27
|
+
{ sha: 'Commit1', author: 'Author1', date: 'Date1', message: 'First Change On Feature' },
|
|
28
|
+
{ sha: 'Commit2', author: 'Author1', date: 'Date2', message: 'Second Change On Feature' },
|
|
29
|
+
{ sha: 'Commit3', author: 'Author1', date: 'Date3', message: 'Third Change On Feature' },
|
|
30
|
+
]);
|
|
31
|
+
|
|
32
|
+
expect(gitCommandSpy).toHaveBeenCalledTimes(1);
|
|
33
|
+
expect(gitCommandSpy).toHaveBeenCalledWith(
|
|
34
|
+
`git log --pretty=format:'%H»¦«%aN<%aE>»¦«%aD»¦«%s' main..feature-branch`,
|
|
35
|
+
);
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it('should return commits after the base commit if provided', () => {
|
|
39
|
+
// Act
|
|
40
|
+
const commits = getCommits({ sourceBranch, targetBranch, baseCommit: 'Commit1' });
|
|
41
|
+
|
|
42
|
+
// Assert
|
|
43
|
+
expect(commits).toStrictEqual([
|
|
44
|
+
{ sha: 'Commit2', author: 'Author1', date: 'Date2', message: 'Second Change On Feature' },
|
|
45
|
+
{ sha: 'Commit3', author: 'Author1', date: 'Date3', message: 'Third Change On Feature' },
|
|
46
|
+
]);
|
|
47
|
+
|
|
48
|
+
expect(gitCommandSpy).toHaveBeenCalledTimes(1);
|
|
49
|
+
expect(gitCommandSpy).toHaveBeenCalledWith(
|
|
50
|
+
`git log --pretty=format:'%H»¦«%aN<%aE>»¦«%aD»¦«%s' main..feature-branch`,
|
|
51
|
+
);
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
it('should return all commits if base commit is not found', () => {
|
|
55
|
+
// Act
|
|
56
|
+
const commits = getCommits({ sourceBranch, targetBranch, baseCommit: 'NonExistingCommit' });
|
|
57
|
+
|
|
58
|
+
// Assert
|
|
59
|
+
expect(commits).toStrictEqual([
|
|
60
|
+
{ sha: 'Commit1', author: 'Author1', date: 'Date1', message: 'First Change On Feature' },
|
|
61
|
+
{ sha: 'Commit2', author: 'Author1', date: 'Date2', message: 'Second Change On Feature' },
|
|
62
|
+
{ sha: 'Commit3', author: 'Author1', date: 'Date3', message: 'Third Change On Feature' },
|
|
63
|
+
]);
|
|
64
|
+
|
|
65
|
+
expect(gitCommandSpy).toHaveBeenCalledTimes(1);
|
|
66
|
+
expect(gitCommandSpy).toHaveBeenCalledWith(
|
|
67
|
+
`git log --pretty=format:'%H»¦«%aN<%aE>»¦«%aD»¦«%s' main..feature-branch`,
|
|
68
|
+
);
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
describe('getChangedFiles', () => {
|
|
73
|
+
let gitCommandSpy: MockInstance;
|
|
74
|
+
|
|
75
|
+
beforeEach(() => {
|
|
76
|
+
gitCommandSpy = vi.spyOn(Utils, 'spawnCommandInGhWorkspace').mockReturnValue('file1.txt\nfolder/file2.txt');
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
it('should return changed files between commits', () => {
|
|
80
|
+
// Arrange
|
|
81
|
+
const commits = [
|
|
82
|
+
{ sha: 'Commit1', author: '', date: '', message: '' },
|
|
83
|
+
{ sha: 'Commit3', author: '', date: '', message: '' },
|
|
84
|
+
];
|
|
85
|
+
|
|
86
|
+
// Act
|
|
87
|
+
const changedFiles = getChangedFiles(commits);
|
|
88
|
+
|
|
89
|
+
// Assert
|
|
90
|
+
expect(changedFiles).toStrictEqual(['file1.txt', 'folder/file2.txt']);
|
|
91
|
+
|
|
92
|
+
expect(gitCommandSpy).toHaveBeenCalledTimes(1);
|
|
93
|
+
expect(gitCommandSpy).toHaveBeenCalledWith(`git diff --name-only Commit1~..Commit3`);
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
it('should handle only one commit', () => {
|
|
97
|
+
// Arrange
|
|
98
|
+
const commits = [{ sha: 'Commit1', author: '', date: '', message: '' }];
|
|
99
|
+
|
|
100
|
+
// Act
|
|
101
|
+
const changedFiles = getChangedFiles(commits);
|
|
102
|
+
|
|
103
|
+
// Assert
|
|
104
|
+
expect(changedFiles).toStrictEqual(['file1.txt', 'folder/file2.txt']);
|
|
105
|
+
|
|
106
|
+
expect(gitCommandSpy).toHaveBeenCalledTimes(1);
|
|
107
|
+
expect(gitCommandSpy).toHaveBeenCalledWith(`git diff --name-only Commit1~..Commit1`);
|
|
108
|
+
});
|
|
109
|
+
});
|
package/dist/bin/build.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { ActorConfig, BuildData } from './types.js';
|
|
2
|
-
type BuildPrActorOptions = {
|
|
3
|
-
buildTag?: string;
|
|
4
|
-
versionNumber: string;
|
|
5
|
-
gitRepoUrl: string;
|
|
6
|
-
actorName: string;
|
|
7
|
-
};
|
|
8
|
-
type RunBuildsOptions = {
|
|
9
|
-
actorConfigs: ActorConfig[];
|
|
10
|
-
isLatest?: boolean;
|
|
11
|
-
repoUrl: string;
|
|
12
|
-
branch: string;
|
|
13
|
-
dryRun: boolean;
|
|
14
|
-
};
|
|
15
|
-
export declare const runBuilds: ({ repoUrl, branch, actorConfigs, isLatest, dryRun, }: RunBuildsOptions) => Promise<BuildPrActorOptions[] | BuildData[]>;
|
|
16
|
-
export declare const deleteOldBuilds: (actorConfigs: ActorConfig[]) => Promise<void>;
|
|
17
|
-
export {};
|
|
18
|
-
//# sourceMappingURL=build.d.ts.map
|
package/dist/bin/build.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../bin/build.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGzD,KAAK,mBAAmB,GAAG;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CACpB,CAAA;AAuKD,KAAK,gBAAgB,GAAG;IACpB,YAAY,EAAE,WAAW,EAAE,CAAA;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,SAAS,GAAU,sDAM7B,gBAAgB,iDAiDlB,CAAC;AAEF,eAAO,MAAM,eAAe,GAAU,cAAc,WAAW,EAAE,kBAIhE,CAAC"}
|
package/dist/bin/build.js
DELETED
|
@@ -1,229 +0,0 @@
|
|
|
1
|
-
import { ACTOR_SOURCE_TYPES } from '@apify/consts';
|
|
2
|
-
import { ApifyClient } from 'apify-client';
|
|
3
|
-
import { getEnvVar } from './utils.js';
|
|
4
|
-
class ApifyBuilder {
|
|
5
|
-
apifyClient;
|
|
6
|
-
actorName;
|
|
7
|
-
// eslint-disable-next-line no-empty-function
|
|
8
|
-
constructor(apifyClient, actorName) {
|
|
9
|
-
this.apifyClient = apifyClient;
|
|
10
|
-
this.actorName = actorName;
|
|
11
|
-
}
|
|
12
|
-
// Usually 'latest' but not necessarily (can be e.g. 'version-0')
|
|
13
|
-
getDefaultVersionAndTag = async () => {
|
|
14
|
-
const actorClient = this.apifyClient.actor(this.actorName);
|
|
15
|
-
const actorInfo = await actorClient.get();
|
|
16
|
-
if (!actorInfo) {
|
|
17
|
-
throw new Error(`[${this.actorName}] not found. It is not published or we are missing token to access it privately or its name is misspelled`);
|
|
18
|
-
}
|
|
19
|
-
const defaultBuildTag = actorInfo.defaultRunOptions.build;
|
|
20
|
-
console.error(`Default build tag for ${this.actorName} is ${defaultBuildTag}`);
|
|
21
|
-
// We could technically allow this but in most cases this is accidentally set wrongly and there is a workaround
|
|
22
|
-
if (defaultBuildTag.match(/\d+\.\d+\.\d+/)) {
|
|
23
|
-
throw new Error(`[${this.actorName}] Default build is a build number, not a tag. While this could work, `
|
|
24
|
-
+ `we want to have a default as tag so this is often an accidental misconfiguration from the dev`);
|
|
25
|
-
}
|
|
26
|
-
// I reported that buildNumber should probably not be optional
|
|
27
|
-
const defaultBuildNumber = actorInfo.taggedBuilds[defaultBuildTag].buildNumber;
|
|
28
|
-
const defaultVersionNumber = defaultBuildNumber.match(/(\d+\.\d+)\.\d+/)[1];
|
|
29
|
-
console.error(`Default version for ${this.actorName} is ${defaultVersionNumber}`);
|
|
30
|
-
return { defaultBuildNumber, defaultVersionNumber, defaultBuildTag };
|
|
31
|
-
};
|
|
32
|
-
startActorBuild = async ({ buildTag, versionNumber, gitRepoUrl, }) => {
|
|
33
|
-
const actorClient = this.apifyClient.actor(this.actorName);
|
|
34
|
-
const actorInfo = await actorClient.get();
|
|
35
|
-
if (!actorInfo) {
|
|
36
|
-
throw new Error(`No actor named '${this.actorName}' was found on the platform. If this`
|
|
37
|
-
+ ' is unexpected, make sure the actor you are targeting is spelled the'
|
|
38
|
-
+ ' same as the folder in the repository.');
|
|
39
|
-
}
|
|
40
|
-
const actorVersion = {
|
|
41
|
-
buildTag,
|
|
42
|
-
versionNumber,
|
|
43
|
-
gitRepoUrl,
|
|
44
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
45
|
-
// @ts-ignore: coudn't find this type either :(
|
|
46
|
-
sourceType: ACTOR_SOURCE_TYPES.GIT_REPO,
|
|
47
|
-
};
|
|
48
|
-
// Prepare version
|
|
49
|
-
const versionExists = !actorInfo.versions.find((version) => version.versionNumber === versionNumber);
|
|
50
|
-
if (versionExists) {
|
|
51
|
-
// create new version
|
|
52
|
-
await actorClient.versions().create(actorVersion);
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
const version = actorClient.version(versionNumber);
|
|
56
|
-
await version.update(actorVersion);
|
|
57
|
-
}
|
|
58
|
-
// We also get back actId so the testing actor can both match by actor ID and name
|
|
59
|
-
const { id, actId, buildNumber } = await actorClient.build(versionNumber);
|
|
60
|
-
console.error(`[${this.actorName}]: ${id} (${buildNumber})`);
|
|
61
|
-
return { buildId: id, actorId: actId, buildNumber, actorName: this.actorName };
|
|
62
|
-
};
|
|
63
|
-
waitForBuildToFinish = async (buildId, actorName) => {
|
|
64
|
-
const build = await this.apifyClient.build(buildId).waitForFinish();
|
|
65
|
-
const versionNumber = build.buildNumber;
|
|
66
|
-
if (build.status === 'FAILED' || build.status === 'TIMED-OUT') {
|
|
67
|
-
const message = `[BUILD][${actorName}]: Build ${buildId} (${versionNumber}) failed. `
|
|
68
|
-
+ `Not continuing with other builds and tests.`;
|
|
69
|
-
console.error(`[${this.actorName}]: ${versionNumber}`);
|
|
70
|
-
throw new Error(message);
|
|
71
|
-
}
|
|
72
|
-
console.error(`[${this.actorName}]: ${versionNumber}`);
|
|
73
|
-
return build;
|
|
74
|
-
};
|
|
75
|
-
/**
|
|
76
|
-
* Create ApifyBuilder with actor owner's token
|
|
77
|
-
*/
|
|
78
|
-
static fromActorName = (actorName) => {
|
|
79
|
-
const username = actorName.split('/')[0];
|
|
80
|
-
// GitHib secrets only allow word characters (alphanum + underscore)
|
|
81
|
-
const usernameInGitHubSecretsFormat = username.replaceAll(/\W/g, '_').toUpperCase();
|
|
82
|
-
const usernameEnvVar = `APIFY_TOKEN_${usernameInGitHubSecretsFormat}`;
|
|
83
|
-
const token = process.env[usernameEnvVar];
|
|
84
|
-
if (!token) {
|
|
85
|
-
throw new Error(`Cannot find Apify API token for username: ${username}. `
|
|
86
|
-
+ `Have you set secret env var to this GitHub repo with key: ${usernameEnvVar}?`);
|
|
87
|
-
}
|
|
88
|
-
const apifyClient = new ApifyClient({ token });
|
|
89
|
-
const builder = new ApifyBuilder(apifyClient, actorName);
|
|
90
|
-
return builder;
|
|
91
|
-
};
|
|
92
|
-
/**
|
|
93
|
-
* Deletes build of all versions. Apify API doesn't allow to delete default build and we explicitly skip it
|
|
94
|
-
* We delete devel builds faster because we used the for every PR until recently so just to get rid of them faster
|
|
95
|
-
*/
|
|
96
|
-
async deleteOldBuilds() {
|
|
97
|
-
// Even though we don't version our current Actors, if we ever such Actors to GitHub CI, we would accidentally delete old supported versions
|
|
98
|
-
// This hardcoded solution is not ideal, but it should prevent most imaginable cases
|
|
99
|
-
// All currently popular versioned Actors use `version-${number}` format
|
|
100
|
-
const PROTECTED_TAGS_PREFIX = ['latest', 'v-', 'version', 'v0', 'v1', 'v2', 'v3', 'v4', 'v5', 'v6', 'v7', 'v8', 'v9'];
|
|
101
|
-
// We don't want to be too short because we might to debug something
|
|
102
|
-
// but also not too long because it increases the risk of users using outdated versions
|
|
103
|
-
const DEFAULT_DAYS_BACK_PROD_VERSIONS = 30;
|
|
104
|
-
const DEFAULT_DAYS_BACK_DEVEL = 7;
|
|
105
|
-
const actorInfo = (await this.apifyClient.actor(this.actorName).get());
|
|
106
|
-
// 'devel' used to be hardcoded for testing version 0.99, once we get rid of this tag everywhere, we can remove this code
|
|
107
|
-
const taggedDevelBuildNumber = actorInfo.taggedBuilds.devel?.buildNumber;
|
|
108
|
-
const allTags = Object.keys(actorInfo.taggedBuilds ?? {});
|
|
109
|
-
const protectedTags = allTags.filter((tag) => PROTECTED_TAGS_PREFIX.some((prefix) => tag.startsWith(prefix)));
|
|
110
|
-
const protectedBuildNumbers = protectedTags.map((tag) => ({ buildNumber: actorInfo.taggedBuilds[tag].buildNumber, tag }));
|
|
111
|
-
const { items } = (await this.apifyClient.actor(this.actorName).builds().list());
|
|
112
|
-
// Deleting default build throws an error, so we skip it
|
|
113
|
-
const { defaultBuildNumber, defaultBuildTag } = await ApifyBuilder.fromActorName(this.actorName).getDefaultVersionAndTag();
|
|
114
|
-
const daysAgoUnixProd = Date.now() - DEFAULT_DAYS_BACK_PROD_VERSIONS * 24 * 60 * 60 * 1000;
|
|
115
|
-
const daysAgoUnixDevel = Date.now() - DEFAULT_DAYS_BACK_DEVEL * 24 * 60 * 60 * 1000;
|
|
116
|
-
const buildsToDelete = items.filter((build) => {
|
|
117
|
-
if (build.buildNumber === defaultBuildNumber) {
|
|
118
|
-
console.error(`[DELETE OLD BUILDS][${this.actorName}]: Skipping default build ${defaultBuildNumber} (${defaultBuildTag}). `
|
|
119
|
-
+ `We never delete default builds`);
|
|
120
|
-
return false;
|
|
121
|
-
}
|
|
122
|
-
const protectedTagFound = protectedBuildNumbers.find((protectedBuildNumber) => protectedBuildNumber.buildNumber === build.buildNumber);
|
|
123
|
-
if (protectedTagFound) {
|
|
124
|
-
console.error(`[DELETE OLD BUILDS][${this.actorName}]: Skipping protected build ${protectedTagFound.buildNumber} (${protectedTagFound.tag}).`);
|
|
125
|
-
return false;
|
|
126
|
-
}
|
|
127
|
-
if (taggedDevelBuildNumber && build.buildNumber === taggedDevelBuildNumber) {
|
|
128
|
-
const shouldDeleteDevelBuild = build.startedAt.getTime() < daysAgoUnixDevel;
|
|
129
|
-
if (shouldDeleteDevelBuild) {
|
|
130
|
-
console.error(`[DELETE OLD BUILDS][${this.actorName}]: Removing olf devel build ${taggedDevelBuildNumber}.`);
|
|
131
|
-
}
|
|
132
|
-
return shouldDeleteDevelBuild;
|
|
133
|
-
}
|
|
134
|
-
return build.startedAt.getTime() < daysAgoUnixProd;
|
|
135
|
-
});
|
|
136
|
-
console.error(`[DELETE OLD BUILDS][${this.actorName}]: Deleting ${buildsToDelete.length} old builds that are non-default and `
|
|
137
|
-
+ `older than 30 days from total ${items.length}`);
|
|
138
|
-
for (const build of buildsToDelete) {
|
|
139
|
-
await this.apifyClient.build(build.id).delete();
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
export const runBuilds = async ({ repoUrl, branch, actorConfigs, isLatest = false, dryRun, }) => {
|
|
144
|
-
const buildConfigs = [];
|
|
145
|
-
const circleActors = isLatest ? await findCircleApifyManaged(actorConfigs) : [];
|
|
146
|
-
for (const { actorName, folder } of actorConfigs.concat(circleActors)) {
|
|
147
|
-
let versionNumber;
|
|
148
|
-
let buildTag;
|
|
149
|
-
if (isLatest) {
|
|
150
|
-
const { defaultVersionNumber, defaultBuildTag } = await ApifyBuilder.fromActorName(actorName).getDefaultVersionAndTag();
|
|
151
|
-
versionNumber = defaultVersionNumber;
|
|
152
|
-
buildTag = defaultBuildTag;
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
versionNumber = '0.99';
|
|
156
|
-
}
|
|
157
|
-
// Depending on if these are miniactors or standaloneActors
|
|
158
|
-
let gitRepoUrl = `${repoUrl}#${branch}`;
|
|
159
|
-
if (folder) {
|
|
160
|
-
gitRepoUrl = `${gitRepoUrl}:${folder}`;
|
|
161
|
-
}
|
|
162
|
-
buildConfigs.push({ actorName, gitRepoUrl, versionNumber, buildTag });
|
|
163
|
-
}
|
|
164
|
-
if (dryRun) {
|
|
165
|
-
return buildConfigs;
|
|
166
|
-
}
|
|
167
|
-
console.error("=========================================");
|
|
168
|
-
console.error("STARTED BUILDS:");
|
|
169
|
-
const startedBuilds = await Promise.all(buildConfigs.map(async (buildConfig) => {
|
|
170
|
-
const builder = ApifyBuilder.fromActorName(buildConfig.actorName);
|
|
171
|
-
const buildData = await builder.startActorBuild(buildConfig);
|
|
172
|
-
return buildData;
|
|
173
|
-
}));
|
|
174
|
-
console.error("=========================================");
|
|
175
|
-
console.error("FINISHED BUILDS:");
|
|
176
|
-
await Promise.all(startedBuilds.map(async (buildData) => {
|
|
177
|
-
const builder = ApifyBuilder.fromActorName(buildData.actorName);
|
|
178
|
-
await builder.waitForBuildToFinish(buildData.buildId, buildData.actorName);
|
|
179
|
-
}));
|
|
180
|
-
console.error("=========================================");
|
|
181
|
-
console.error("SUMMARY:");
|
|
182
|
-
for (const buildData of startedBuilds.sort((a, b) => a.actorName.localeCompare(b.actorName))) {
|
|
183
|
-
console.error(`[${buildData.actorName}]: ${buildData.buildNumber} `);
|
|
184
|
-
}
|
|
185
|
-
console.error("=========================================");
|
|
186
|
-
return startedBuilds;
|
|
187
|
-
};
|
|
188
|
-
export const deleteOldBuilds = async (actorConfigs) => {
|
|
189
|
-
for (const { actorName } of actorConfigs) {
|
|
190
|
-
await ApifyBuilder.fromActorName(actorName).deleteOldBuilds();
|
|
191
|
-
}
|
|
192
|
-
};
|
|
193
|
-
/**
|
|
194
|
-
* We will read all Actors in the circ_le account and build those that match by name pattern
|
|
195
|
-
* There are many ways to approach this, a more robust one would be to have a map of Actors
|
|
196
|
-
* which would allow to have more than one special user per Actor
|
|
197
|
-
* But since that use-case might never be needed, I went with the simplest solution that doesn't require maintaining the map
|
|
198
|
-
* NOTE: One issue is that if any Actor is renamed, we will not match it in the circ_le account nor throw any error
|
|
199
|
-
*/
|
|
200
|
-
const findCircleApifyManaged = async (actorConfigs) => {
|
|
201
|
-
// This token is hardcoded in the runner Actor, locally you have to inject it
|
|
202
|
-
const client = new ApifyClient({ token: getEnvVar('APIFY_TOKEN_CIRC_LE') });
|
|
203
|
-
const { items: circleActors } = await client.actors().list();
|
|
204
|
-
const actorsToBuild = circleActors.map((circleActor) => {
|
|
205
|
-
// They prefix all with apify-managed---, I communicated with Jacques to keep doing that
|
|
206
|
-
let actorConfigFound = actorConfigs.find((actorConfig) => circleActor.name.replace('apify-managed---', '') === actorConfig.actorName.split('/')[1]);
|
|
207
|
-
// Hack for bad naming of circ_le/apify-managed-google-search, we don't want to rename now to break customers
|
|
208
|
-
if (!actorConfigFound && circleActor.name === 'apify-managed-google-search') {
|
|
209
|
-
actorConfigFound = actorConfigs.find((actorConfig) => actorConfig.actorName.split('/')[1] === 'google-search-scraper');
|
|
210
|
-
}
|
|
211
|
-
if (actorConfigFound) {
|
|
212
|
-
return {
|
|
213
|
-
// We point the circle Actor to the repo folder
|
|
214
|
-
actorName: `${circleActor.username}/${circleActor.name}`,
|
|
215
|
-
folder: actorConfigFound.folder,
|
|
216
|
-
isStandalone: actorConfigFound.isStandalone,
|
|
217
|
-
};
|
|
218
|
-
}
|
|
219
|
-
return undefined;
|
|
220
|
-
}).filter((config) => config !== undefined);
|
|
221
|
-
console.error(`Found ${actorsToBuild.length} circ_le actors that match Actors we built out of total ${circleActors.length} circ_le actors`);
|
|
222
|
-
console.error(`All circ_le actors: ${circleActors.map((actor) => actor.name).join(', ')}`);
|
|
223
|
-
console.error(`circ_le Actors to build: ${actorsToBuild.map((actor) => actor.actorName).join(', ')}`);
|
|
224
|
-
if (actorsToBuild.length === 0) {
|
|
225
|
-
console.error('No circ_le actors to build');
|
|
226
|
-
}
|
|
227
|
-
return actorsToBuild;
|
|
228
|
-
};
|
|
229
|
-
//# sourceMappingURL=build.js.map
|
package/dist/bin/build.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../bin/build.ts"],"names":[],"mappings":"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"}
|
package/dist/bin/consts.d.ts
DELETED
package/dist/bin/consts.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../bin/consts.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,yBAAyB,UAAiC,CAAC;AAExE,eAAO,MAAM,wBAAwB,sBAAsB,CAAC;AAC5D,eAAO,MAAM,wBAAwB,sBAAsB,CAAC"}
|
package/dist/bin/consts.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
// Technically, upgrades in shared or packages might not need impact every actor
|
|
2
|
-
// but we cannot really know that
|
|
3
|
-
export const DEFAULT_BUILD_ALL_FOLDERS = ['code', 'shared', 'packages'];
|
|
4
|
-
export const PERSISTED_GH_JOBS_KVS_ID = 'XIBdO8EJePdD0KiAI';
|
|
5
|
-
export const MINIACTORS_LIST_STORE_ID = 'ftXklt2f2mN30Oc3y';
|
|
6
|
-
//# sourceMappingURL=consts.js.map
|
package/dist/bin/consts.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../../bin/consts.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,iCAAiC;AACjC,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAExE,MAAM,CAAC,MAAM,wBAAwB,GAAG,mBAAmB,CAAC;AAC5D,MAAM,CAAC,MAAM,wBAAwB,GAAG,mBAAmB,CAAC"}
|
package/dist/bin/git.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { Commit, Config } from './types.js';
|
|
2
|
-
export declare const GIT_FORMAT_SEPARATOR = "\u00BB\u00A6\u00AB";
|
|
3
|
-
export declare const getBranchLastCommit: (branch: string) => Commit;
|
|
4
|
-
export declare const getChangedFiles: (commits: Commit[]) => string[];
|
|
5
|
-
export declare const getCommits: ({ sourceBranch, targetBranch, baseCommit: baseCommitSha }: Config) => Commit[];
|
|
6
|
-
export declare const getBaseCommit: (target: Commit, source: Commit) => Commit;
|
|
7
|
-
export declare const getCommitInfo: (commitSha: string) => Commit;
|
|
8
|
-
export declare const parseCommit: (commitString: string) => Commit;
|
|
9
|
-
//# sourceMappingURL=git.d.ts.map
|
package/dist/bin/git.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../bin/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAG5C,eAAO,MAAM,oBAAoB,uBAAQ,CAAC;AAG1C,eAAO,MAAM,mBAAmB,GAAI,QAAQ,MAAM,KAAG,MAIpD,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,SAAS,MAAM,EAAE,aAMhD,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,2DAA2D,MAAM,KAAG,MAAM,EAuBpG,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,QAAQ,MAAM,EAAE,QAAQ,MAAM,KAAG,MAI9D,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,WAAW,MAAM,KAAG,MAIjD,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,cAAc,MAAM,KAAG,MAYlD,CAAC"}
|
package/dist/bin/git.js
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { spawnCommandInGhWorkspace } from './utils.js';
|
|
2
|
-
export const GIT_FORMAT_SEPARATOR = '»¦«';
|
|
3
|
-
const GIT_LOG_FORMAT = ['%H', '%aN<%aE>', '%aD', '%s'].join(GIT_FORMAT_SEPARATOR);
|
|
4
|
-
export const getBranchLastCommit = (branch) => {
|
|
5
|
-
const commitString = spawnCommandInGhWorkspace(`git log -1 --pretty=format:'${GIT_LOG_FORMAT}' ${branch}`);
|
|
6
|
-
const commit = parseCommit(commitString);
|
|
7
|
-
return commit;
|
|
8
|
-
};
|
|
9
|
-
export const getChangedFiles = (commits) => {
|
|
10
|
-
const changedFiles = commits.length === 1
|
|
11
|
-
? spawnCommandInGhWorkspace(`git show --pretty='format:' --name-only ${commits[0].sha}`)
|
|
12
|
-
: spawnCommandInGhWorkspace(`git diff --name-only ${commits[0].sha}..${commits[commits.length - 1].sha}`);
|
|
13
|
-
return changedFiles.split('\n');
|
|
14
|
-
};
|
|
15
|
-
export const getCommits = ({ sourceBranch, targetBranch, baseCommit: baseCommitSha }) => {
|
|
16
|
-
const targetBranchCommit = getBranchLastCommit(targetBranch);
|
|
17
|
-
const sourceBranchCommit = getBranchLastCommit(sourceBranch);
|
|
18
|
-
let baseCommit;
|
|
19
|
-
if (baseCommitSha) {
|
|
20
|
-
try {
|
|
21
|
-
baseCommit = getCommitInfo(baseCommitSha);
|
|
22
|
-
}
|
|
23
|
-
catch (err) {
|
|
24
|
-
console.warn(`Failed to get base commit "${baseCommitSha}", it will not be used: ${err}`);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
// const baseCommit = baseCommitSha !== undefined ? : undefined;
|
|
28
|
-
// const gitOutputFormat = '{"sha":"%H","author":"%aN<%aE>","date":"%aD","message":"%f"}';
|
|
29
|
-
// console.log(`git log --pretty=format:"${gitOutputFormat}" ${targetBranch}..${sourceBranch}`);
|
|
30
|
-
// return [];
|
|
31
|
-
const base = getBaseCommit(sourceBranchCommit, targetBranchCommit);
|
|
32
|
-
const commitsStrings = spawnCommandInGhWorkspace(`git log --pretty=format:'${GIT_LOG_FORMAT}' ${base.sha}..${sourceBranchCommit.sha}`).split('\n');
|
|
33
|
-
const commits = commitsStrings.map((commitString) => parseCommit(commitString));
|
|
34
|
-
commits.reverse();
|
|
35
|
-
const baseCommitIndex = baseCommit ? commits.findIndex(({ sha }) => sha === baseCommit.sha) : -1;
|
|
36
|
-
return commits.slice(baseCommitIndex + 1);
|
|
37
|
-
};
|
|
38
|
-
export const getBaseCommit = (target, source) => {
|
|
39
|
-
const baseCommitSha = spawnCommandInGhWorkspace(`git merge-base ${target.sha} ${source.sha}`);
|
|
40
|
-
const baseCommit = getCommitInfo(baseCommitSha);
|
|
41
|
-
return baseCommit;
|
|
42
|
-
};
|
|
43
|
-
export const getCommitInfo = (commitSha) => {
|
|
44
|
-
const commitString = spawnCommandInGhWorkspace(`git log -1 --pretty=format:'${GIT_LOG_FORMAT}' ${commitSha}`);
|
|
45
|
-
const commit = parseCommit(commitString);
|
|
46
|
-
return commit;
|
|
47
|
-
};
|
|
48
|
-
export const parseCommit = (commitString) => {
|
|
49
|
-
const splits = commitString.split(GIT_FORMAT_SEPARATOR);
|
|
50
|
-
if (splits.length !== 4) {
|
|
51
|
-
throw new Error(`Failed to parse commit string: ${commitString}`);
|
|
52
|
-
}
|
|
53
|
-
const [sha, author, date, message] = splits;
|
|
54
|
-
return {
|
|
55
|
-
sha,
|
|
56
|
-
author,
|
|
57
|
-
date,
|
|
58
|
-
message,
|
|
59
|
-
};
|
|
60
|
-
};
|
|
61
|
-
//# sourceMappingURL=git.js.map
|
package/dist/bin/git.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../bin/git.ts"],"names":[],"mappings":"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"}
|
package/dist/bin/github.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Commit, GitHubEventPush } from './types.js';
|
|
2
|
-
export declare const getPushData: (path: string) => Promise<{
|
|
3
|
-
branch: string;
|
|
4
|
-
commits: Commit[];
|
|
5
|
-
changedFiles: string[];
|
|
6
|
-
repoUrl: string;
|
|
7
|
-
changelog: string | null;
|
|
8
|
-
repository: string;
|
|
9
|
-
author: string;
|
|
10
|
-
}>;
|
|
11
|
-
export declare const loadGitHubEvent: (path: string) => Promise<GitHubEventPush>;
|
|
12
|
-
export declare const getChangelogChanges: (changedFiles: string[], event: GitHubEventPush) => string | null;
|
|
13
|
-
//# sourceMappingURL=github.d.ts.map
|
package/dist/bin/github.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../bin/github.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGrD,eAAO,MAAM,WAAW,GAAU,MAAM,MAAM;;;;;;;;EAyB7C,CAAC;AAEF,eAAO,MAAM,eAAe,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,eAAe,CAG3E,CAAC;AAOF,eAAO,MAAM,mBAAmB,GAAI,cAAc,MAAM,EAAE,EAAE,OAAO,eAAe,KAAG,MAAM,GAAG,IA0B7F,CAAC"}
|