mirror of
https://github.com/laurent22/joplin.git
synced 2025-01-02 12:47:41 +02:00
Plugin Repo: Prevent faulty packages from generating commits on each check
This commit is contained in:
parent
63559ac8b9
commit
0cbecabff2
@ -1458,6 +1458,15 @@ packages/plugin-repo-cli/lib/checkIfPluginCanBeAdded.js.map
|
|||||||
packages/plugin-repo-cli/lib/checkIfPluginCanBeAdded.test.d.ts
|
packages/plugin-repo-cli/lib/checkIfPluginCanBeAdded.test.d.ts
|
||||||
packages/plugin-repo-cli/lib/checkIfPluginCanBeAdded.test.js
|
packages/plugin-repo-cli/lib/checkIfPluginCanBeAdded.test.js
|
||||||
packages/plugin-repo-cli/lib/checkIfPluginCanBeAdded.test.js.map
|
packages/plugin-repo-cli/lib/checkIfPluginCanBeAdded.test.js.map
|
||||||
|
packages/plugin-repo-cli/lib/errorsHaveChanged.d.ts
|
||||||
|
packages/plugin-repo-cli/lib/errorsHaveChanged.js
|
||||||
|
packages/plugin-repo-cli/lib/errorsHaveChanged.js.map
|
||||||
|
packages/plugin-repo-cli/lib/errorsHaveChanged.test.d.ts
|
||||||
|
packages/plugin-repo-cli/lib/errorsHaveChanged.test.js
|
||||||
|
packages/plugin-repo-cli/lib/errorsHaveChanged.test.js.map
|
||||||
|
packages/plugin-repo-cli/lib/types.d.ts
|
||||||
|
packages/plugin-repo-cli/lib/types.js
|
||||||
|
packages/plugin-repo-cli/lib/types.js.map
|
||||||
packages/plugin-repo-cli/lib/updateReadme.d.ts
|
packages/plugin-repo-cli/lib/updateReadme.d.ts
|
||||||
packages/plugin-repo-cli/lib/updateReadme.js
|
packages/plugin-repo-cli/lib/updateReadme.js
|
||||||
packages/plugin-repo-cli/lib/updateReadme.js.map
|
packages/plugin-repo-cli/lib/updateReadme.js.map
|
||||||
|
9
.gitignore
vendored
9
.gitignore
vendored
@ -1446,6 +1446,15 @@ packages/plugin-repo-cli/lib/checkIfPluginCanBeAdded.js.map
|
|||||||
packages/plugin-repo-cli/lib/checkIfPluginCanBeAdded.test.d.ts
|
packages/plugin-repo-cli/lib/checkIfPluginCanBeAdded.test.d.ts
|
||||||
packages/plugin-repo-cli/lib/checkIfPluginCanBeAdded.test.js
|
packages/plugin-repo-cli/lib/checkIfPluginCanBeAdded.test.js
|
||||||
packages/plugin-repo-cli/lib/checkIfPluginCanBeAdded.test.js.map
|
packages/plugin-repo-cli/lib/checkIfPluginCanBeAdded.test.js.map
|
||||||
|
packages/plugin-repo-cli/lib/errorsHaveChanged.d.ts
|
||||||
|
packages/plugin-repo-cli/lib/errorsHaveChanged.js
|
||||||
|
packages/plugin-repo-cli/lib/errorsHaveChanged.js.map
|
||||||
|
packages/plugin-repo-cli/lib/errorsHaveChanged.test.d.ts
|
||||||
|
packages/plugin-repo-cli/lib/errorsHaveChanged.test.js
|
||||||
|
packages/plugin-repo-cli/lib/errorsHaveChanged.test.js.map
|
||||||
|
packages/plugin-repo-cli/lib/types.d.ts
|
||||||
|
packages/plugin-repo-cli/lib/types.js
|
||||||
|
packages/plugin-repo-cli/lib/types.js.map
|
||||||
packages/plugin-repo-cli/lib/updateReadme.d.ts
|
packages/plugin-repo-cli/lib/updateReadme.d.ts
|
||||||
packages/plugin-repo-cli/lib/updateReadme.js
|
packages/plugin-repo-cli/lib/updateReadme.js
|
||||||
packages/plugin-repo-cli/lib/updateReadme.js.map
|
packages/plugin-repo-cli/lib/updateReadme.js.map
|
||||||
|
@ -7,12 +7,8 @@ import validatePluginId from '@joplin/lib/services/plugins/utils/validatePluginI
|
|||||||
import { execCommand2, resolveRelativePathWithinDir, gitPullTry, gitRepoCleanTry, gitRepoClean } from '@joplin/tools/tool-utils.js';
|
import { execCommand2, resolveRelativePathWithinDir, gitPullTry, gitRepoCleanTry, gitRepoClean } from '@joplin/tools/tool-utils.js';
|
||||||
import checkIfPluginCanBeAdded from './lib/checkIfPluginCanBeAdded';
|
import checkIfPluginCanBeAdded from './lib/checkIfPluginCanBeAdded';
|
||||||
import updateReadme from './lib/updateReadme';
|
import updateReadme from './lib/updateReadme';
|
||||||
|
import { ImportErrors, NpmPackage } from './lib/types';
|
||||||
interface NpmPackage {
|
import errorsHaveChanged from './lib/errorsHaveChanged';
|
||||||
name: string;
|
|
||||||
version: string;
|
|
||||||
date: Date;
|
|
||||||
}
|
|
||||||
|
|
||||||
function stripOffPackageOrg(name: string): string {
|
function stripOffPackageOrg(name: string): string {
|
||||||
const n = name.split('/');
|
const n = name.split('/');
|
||||||
@ -167,7 +163,7 @@ async function processNpmPackage(npmPackage: NpmPackage, repoDir: string) {
|
|||||||
chdir(packageTempDir);
|
chdir(packageTempDir);
|
||||||
await execCommand2('npm init --yes --loglevel silent', { quiet: true });
|
await execCommand2('npm init --yes --loglevel silent', { quiet: true });
|
||||||
|
|
||||||
const errors: any = await readJsonFile(errorsPath, {});
|
const errors: ImportErrors = await readJsonFile(errorsPath, {});
|
||||||
delete errors[npmPackage.name];
|
delete errors[npmPackage.name];
|
||||||
|
|
||||||
let actionType: ProcessingActionType = ProcessingActionType.Update;
|
let actionType: ProcessingActionType = ProcessingActionType.Update;
|
||||||
@ -191,7 +187,9 @@ async function processNpmPackage(npmPackage: NpmPackage, repoDir: string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (Object.keys(errors).length) {
|
if (Object.keys(errors).length) {
|
||||||
await fs.writeFile(errorsPath, JSON.stringify(errors, null, '\t'), 'utf8');
|
if (errorsHaveChanged(await readJsonFile(errorsPath, {}), errors)) {
|
||||||
|
await fs.writeFile(errorsPath, JSON.stringify(errors, null, '\t'), 'utf8');
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
await fs.remove(errorsPath);
|
await fs.remove(errorsPath);
|
||||||
}
|
}
|
||||||
|
65
packages/plugin-repo-cli/lib/errorsHaveChanged.test.ts
Normal file
65
packages/plugin-repo-cli/lib/errorsHaveChanged.test.ts
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
import errorsHaveChanged from './errorsHaveChanged';
|
||||||
|
|
||||||
|
describe('errorsHaveChanged', () => {
|
||||||
|
|
||||||
|
test('should tell if an errors object has changed', () => {
|
||||||
|
const testCases = [
|
||||||
|
[
|
||||||
|
{
|
||||||
|
'one': '111',
|
||||||
|
'two': '222',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'two': '222',
|
||||||
|
'one': '111',
|
||||||
|
},
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{
|
||||||
|
'one': '111',
|
||||||
|
'two': '222',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'one': '111',
|
||||||
|
'two': '222',
|
||||||
|
},
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{
|
||||||
|
'one': '111',
|
||||||
|
'two': '222',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'one': '111',
|
||||||
|
},
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{
|
||||||
|
'one': '111',
|
||||||
|
'two': '222',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'one': '222',
|
||||||
|
'two': '111',
|
||||||
|
},
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{},
|
||||||
|
{},
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
];
|
||||||
|
|
||||||
|
for (const t of testCases) {
|
||||||
|
const [oldErrors, newErrors, expected] = t;
|
||||||
|
|
||||||
|
const result = errorsHaveChanged(oldErrors, newErrors);
|
||||||
|
expect(result).toBe(expected);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
11
packages/plugin-repo-cli/lib/errorsHaveChanged.ts
Normal file
11
packages/plugin-repo-cli/lib/errorsHaveChanged.ts
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
import { ImportErrors } from './types';
|
||||||
|
|
||||||
|
export default function(previousErrors: ImportErrors, newErrors: ImportErrors): boolean {
|
||||||
|
if (Object.keys(previousErrors).length !== Object.keys(newErrors).length) return true;
|
||||||
|
|
||||||
|
for (const packageName of Object.keys(previousErrors)) {
|
||||||
|
if (newErrors[packageName] !== previousErrors[packageName]) return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
7
packages/plugin-repo-cli/lib/types.ts
Normal file
7
packages/plugin-repo-cli/lib/types.ts
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
export type ImportErrors = Record<string, string>;
|
||||||
|
|
||||||
|
export interface NpmPackage {
|
||||||
|
name: string;
|
||||||
|
version: string;
|
||||||
|
date: Date;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user