mirror of
https://github.com/TrianguloY/UrlChecker.git
synced 2024-09-19 20:02:16 +02:00
slightly improvement over the validation (now validate-store-files) action
This commit is contained in:
parent
f6cfddce2e
commit
2f5455c007
@ -1,19 +1,21 @@
|
|||||||
name: Validation
|
# This action checks that the store files are valid for Play Store. Current checks:
|
||||||
|
# - title and description files must not exceed a maximum number of characters
|
||||||
|
# To be replaced with a more powerful (and less manual) one
|
||||||
|
name: Validate store files
|
||||||
|
|
||||||
# Note: this is the second time I'm writting a GitHub action, and the first time I'm using a script.
|
# Note: this is the second time I'm writing a GitHub action, and the first time I'm using a script.
|
||||||
# Most probably there are better ways to do it, if you know one and want to suggest it that'd be wonderful!
|
# Most probably there are better ways to do it, if you know one and want to suggest it that'd be wonderful!
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
pull_request:
|
pull_request:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
validate:
|
validation:
|
||||||
# This action checks that the title and description files don't exceed the maximum number of characters allowed on PlayStore
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
@ -23,20 +25,20 @@ jobs:
|
|||||||
// import
|
// import
|
||||||
const { lstatSync, readdirSync, readFileSync, existsSync } = require('fs');
|
const { lstatSync, readdirSync, readFileSync, existsSync } = require('fs');
|
||||||
const { join } = require('path');
|
const { join } = require('path');
|
||||||
|
|
||||||
// header
|
// header
|
||||||
console.log("Validating files:");
|
console.log("Validating files:");
|
||||||
console.log("");
|
console.log("");
|
||||||
|
|
||||||
let error = false;
|
let error = false;
|
||||||
|
|
||||||
// for each locale
|
// for each locale
|
||||||
const listings = "./app/src/main/play/listings";
|
const listings = "./app/src/main/play/listings";
|
||||||
readdirSync(listings)
|
readdirSync(listings)
|
||||||
.map(locale => [locale, join(listings, locale)])
|
.map(locale => [locale, join(listings, locale)])
|
||||||
.filter(([locale, path]) => lstatSync(path).isDirectory())
|
.filter(([locale, path]) => lstatSync(path).isDirectory())
|
||||||
.forEach(([locale, path]) => {
|
.forEach(([locale, path]) => {
|
||||||
console.log(`[ ] - '${locale}'`);
|
console.log(`[ ] - '${locale}'`);
|
||||||
|
|
||||||
// check files length
|
// check files length
|
||||||
([
|
([
|
||||||
@ -44,7 +46,7 @@ jobs:
|
|||||||
["short-description.txt", 80],
|
["short-description.txt", 80],
|
||||||
["full-description.txt", 4000],
|
["full-description.txt", 4000],
|
||||||
]).forEach(([file, limit]) => {
|
]).forEach(([file, limit]) => {
|
||||||
|
|
||||||
// get file
|
// get file
|
||||||
const subpath = join(path, file);
|
const subpath = join(path, file);
|
||||||
if(existsSync(subpath)){
|
if(existsSync(subpath)){
|
||||||
@ -53,31 +55,29 @@ jobs:
|
|||||||
if(size > limit) {
|
if(size > limit) {
|
||||||
// invalid length, error
|
// invalid length, error
|
||||||
error = true;
|
error = true;
|
||||||
console.log(`[ERROR] - '${file}' length: ${size}/${limit}`);
|
console.log(`[ERROR ] - '${file}' length: ${size}/${limit}`);
|
||||||
console.error("");
|
console.log("");
|
||||||
console.error("*********");
|
// '[ERROR]' is detected on GitHub and the line is displayed on red
|
||||||
console.error(`* ERROR : File ${file} from locale ${locale} (${subpath}) must have ${limit} or less chars, and has ${size}. Use synonims or remove less important sentences, otherwise Play Store won't accept it`);
|
console.log(`[ERROR] File ${file} from locale ${locale} (${subpath}) must be ${limit} or less characters long, current length: ${size}. Use synonims or remove less important sentences, otherwise Play Store won't accept it.`);
|
||||||
console.error("*********");
|
console.log("");
|
||||||
console.error("");
|
|
||||||
}else{
|
}else{
|
||||||
// valid length
|
// valid length
|
||||||
console.log(`[ OK ] - '${file}' length: ${size}/${limit}`);
|
console.log(`[ OK ] - '${file}' length: ${size}/${limit}`);
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
// no file
|
// no file
|
||||||
console.log(`[SKIP ] - '${file}': not found`);
|
console.log(`[ SKIP ] - '${file}': not found`);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
// result
|
// result
|
||||||
console.log("");
|
console.log("");
|
||||||
if (error) {
|
if (error) {
|
||||||
// error, exit
|
// error, exit
|
||||||
console.error("Validation finished. Errors found, check above for their details");
|
console.log("Validation finished. Errors found, check above for their details");
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}else{
|
}else{
|
||||||
// ok, end
|
// ok, end
|
||||||
console.log("Validation finished. No errors found.");
|
console.log("Validation finished. No errors found.");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user