Skip to content

Commit cb054f7

Browse files
committed
Ignore external packages in action sorter
1 parent fba1b26 commit cb054f7

2 files changed

Lines changed: 22 additions & 10 deletions

File tree

.github/actions/src/info/__tests__/sorter.test.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,25 @@ describe(topoSortPackages, () => {
4747
]);
4848
});
4949

50+
test('Ignores external Source Academy dependencies', () => {
51+
const result = topoSortPackages({
52+
'@sourceacademy/0': {
53+
type: null,
54+
hasChanges: false,
55+
directory: '/',
56+
package: {
57+
name: '@sourceacademy/0',
58+
devDependencies: {},
59+
dependencies: {
60+
'@sourceacademy/external': '^1.0.0'
61+
}
62+
}
63+
}
64+
});
65+
66+
expect(result).toEqual(['@sourceacademy/0']);
67+
});
68+
5069
test('With a cycle', () => {
5170
const func = () => topoSortPackages({
5271
'@sourceacademy/0': {

.github/actions/src/info/sorter.ts

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,9 @@ export function topoSortPackages(packages: Record<string, RawPackageRecord>) {
2727
keys.push(...Object.keys(devDependencies));
2828
}
2929

30-
for (const name of keys) {
31-
if (name.startsWith('@sourceacademy')) {
32-
if (!(name in indegrees)) {
33-
indegrees[name] = 1;
34-
} else {
35-
indegrees[name]++;
36-
}
37-
38-
neighbours[packageName].push(name);
39-
}
30+
for (const name of keys.filter(k => k in packages)) {
31+
indegrees[name] = (indegrees[name] ?? 0) + 1;
32+
neighbours[packageName].push(name);
4033
}
4134
}
4235

0 commit comments

Comments
 (0)