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) {
|
||||
console.error(err)
|
||||
process.exit(127)
|
||||
})
|
||||
|
|
@ -5,6 +5,7 @@
|
|||
"main": "build_and_publish_to_github_pages.js",
|
||||
"scripts": {
|
||||
"build": "node ./build_one_click_apps.js",
|
||||
"validate_json": "node./validate_json.js",
|
||||
"publish": "npm run build && ./publish-from-actions.sh"
|
||||
},
|
||||
"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