awesome-docker/tests/pull_request.mjs

67 lines
1.8 KiB
Markdown
Raw Normal View History

2021-10-23 21:08:32 +00:00
import fs from 'fs-extra';
import helper from './common.mjs';
2020-04-13 14:15:18 +00:00
console.log({
2020-11-11 07:46:43 +00:00
DEBUG: process.env.DEBUG || false,
2020-04-13 14:15:18 +00:00
});
const README = 'README.md';
async function main() {
2020-11-11 07:46:43 +00:00
const has_error = {
show: false,
duplicates: '',
other_links_error: '',
};
const markdown = await fs.readFile(README, 'utf8');
let links = helper.extract_all_links(markdown);
links = links.filter((l) => !helper.exclude_from_list(l)); // exclude websites
helper.LOG.debug_string({ links });
2020-04-13 17:59:09 +00:00
2020-11-11 07:46:43 +00:00
console.log(`total links to check ${links.length}`);
2020-04-13 17:59:09 +00:00
2020-11-11 07:46:43 +00:00
console.log('checking for duplicates links...');
2020-04-13 17:59:09 +00:00
2020-11-11 07:46:43 +00:00
const duplicates = helper.find_duplicates(links);
if (duplicates.length > 0) {
has_error.show = true;
has_error.duplicates = duplicates;
}
helper.LOG.debug_string({ duplicates });
const [github_links, external_links] = helper.partition(links, (link) =>
link.startsWith('https://github.com'),
);
2020-04-13 14:15:18 +00:00
2020-11-11 07:46:43 +00:00
console.log(`checking ${external_links.length} external links...`);
2020-04-13 17:59:09 +00:00
2020-11-11 07:46:43 +00:00
const external_links_error = await helper.batch_fetch({
arr: external_links,
get: helper.fetch_link,
post_filter_func: (x) => !x[1].ok,
BATCH_SIZE: 8,
});
if (external_links_error.length > 0) {
has_error.show = true;
has_error.other_links_error = external_links_error;
}
2020-04-13 14:15:18 +00:00
2020-11-11 07:46:43 +00:00
console.log(`checking ${github_links.length} GitHub repositories...`);
2020-04-13 17:59:09 +00:00
2020-11-11 07:46:43 +00:00
console.log(
`skipping GitHub repository check. Run "npm run test" to execute them manually.`,
);
2020-11-09 18:30:28 +00:00
2020-11-11 07:46:43 +00:00
console.log({
TEST_PASSED: !has_error.show,
EXTERNAL_LINKS: external_links.length,
});
2020-04-13 17:59:09 +00:00
2020-11-11 07:46:43 +00:00
if (has_error.show) {
helper.LOG.error_string(has_error);
process.exit(1);
}
2020-04-13 14:15:18 +00:00
}
console.log('starting...');
main();