updated
This commit is contained in:
parent
f0a82c2081
commit
5f100c89ac
|
|
@ -0,0 +1,17 @@
|
||||||
|
name: Publish One Click Apps
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [something]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v1
|
||||||
|
- uses: actions/setup-node@v1
|
||||||
|
with:
|
||||||
|
node-version: 10
|
||||||
|
- run: npm ci && npm run validate_json
|
||||||
|
env:
|
||||||
|
GITHUB_PERSONAL_TOKEN: ${{secrets.GITHUB_PERSONAL_TOKEN}}
|
||||||
|
|
@ -66,4 +66,5 @@
|
||||||
})
|
})
|
||||||
.catch(function (err) {
|
.catch(function (err) {
|
||||||
console.error(err)
|
console.error(err)
|
||||||
|
process.exit(127)
|
||||||
})
|
})
|
||||||
|
|
@ -5,6 +5,7 @@
|
||||||
"main": "build_and_publish_to_github_pages.js",
|
"main": "build_and_publish_to_github_pages.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "node ./build_one_click_apps.js",
|
"build": "node ./build_one_click_apps.js",
|
||||||
|
"validate_json": "node./validate_json.js",
|
||||||
"publish": "npm run build && ./publish-from-actions.sh"
|
"publish": "npm run build && ./publish-from-actions.sh"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,69 @@
|
||||||
|
/*jshint esversion: 6 */
|
||||||
|
const path = require('path');
|
||||||
|
const fs = require('fs-extra')
|
||||||
|
|
||||||
|
const PUBLIC = `public`
|
||||||
|
const pathOfPublic = path.join(__dirname, PUBLIC);
|
||||||
|
|
||||||
|
|
||||||
|
// validating version 2
|
||||||
|
function validate() {
|
||||||
|
|
||||||
|
const version = '2'
|
||||||
|
const pathOfVersion = path.join(pathOfPublic, 'v' + version);
|
||||||
|
const pathOfApps = path.join(pathOfVersion, 'apps');
|
||||||
|
|
||||||
|
return fs.readdir(pathOfApps)
|
||||||
|
.then(function (items) {
|
||||||
|
|
||||||
|
const apps = items.filter(v => v.includes('.json'));
|
||||||
|
const appDetails = [];
|
||||||
|
|
||||||
|
for (var i = 0; i < apps.length; i++) {
|
||||||
|
const contentString = fs.readFileSync(path.join(pathOfApps, apps[i]));
|
||||||
|
const content = JSON.parse(contentString)
|
||||||
|
const captainVersion = (content.captainVersion + '');
|
||||||
|
const versionString = (version + '');
|
||||||
|
if (versionString !== captainVersion)
|
||||||
|
throw new Error(`unmatched versions ${versionString} ${captainVersion} for ${apps[i]}`)
|
||||||
|
|
||||||
|
apps[i] = apps[i].replace('.json', '');
|
||||||
|
|
||||||
|
if (!content.displayName) {
|
||||||
|
content.displayName = apps[i];
|
||||||
|
content.displayName = content.displayName.substr(0, 1).toUpperCase() + content.displayName.substring(1, content.displayName.length);
|
||||||
|
}
|
||||||
|
if (!content.description) content.description = '';
|
||||||
|
|
||||||
|
const logoFileName = apps[i] + '.png';
|
||||||
|
|
||||||
|
appDetails[i] = {
|
||||||
|
name: apps[i],
|
||||||
|
displayName: content.displayName,
|
||||||
|
description: content.description,
|
||||||
|
logoUrl: logoFileName
|
||||||
|
}
|
||||||
|
|
||||||
|
const logoFullPath = path.join(pathOfVersion, 'logos', logoFileName);
|
||||||
|
|
||||||
|
if (!fs.existsSync(logoFullPath) ||
|
||||||
|
!fs.statSync(logoFullPath).isFile()) {
|
||||||
|
let printablePath = logoFullPath;
|
||||||
|
printablePath = printablePath.substr(printablePath.indexOf(`/${PUBLIC}`))
|
||||||
|
throw new Error(`Cannot find logo for ${apps[i]} ${printablePath}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Promise.resolve()
|
||||||
|
.then(function () {
|
||||||
|
return validate()
|
||||||
|
})
|
||||||
|
.catch(function (err) {
|
||||||
|
console.error(err)
|
||||||
|
process.exit(127)
|
||||||
|
})
|
||||||
Loading…
Reference in New Issue