fix(deployer): Installs and compiles additional .gbapps on server startup.
This commit is contained in:
parent
dd92032f62
commit
cfe5cd2ddb
1 changed files with 32 additions and 12 deletions
|
@ -45,7 +45,7 @@ const express = require('express');
|
||||||
const child_process = require('child_process');
|
const child_process = require('child_process');
|
||||||
|
|
||||||
import { GBMinInstance, IGBCoreService, IGBInstance } from 'botlib';
|
import { GBMinInstance, IGBCoreService, IGBInstance } from 'botlib';
|
||||||
import { GBError,IGBPackage } from 'botlib';
|
import { GBError, IGBPackage } from 'botlib';
|
||||||
import { AzureSearch } from 'pragmatismo-io-framework';
|
import { AzureSearch } from 'pragmatismo-io-framework';
|
||||||
import { AzureDeployerService } from '../../azuredeployer.gbapp/services/AzureDeployerService';
|
import { AzureDeployerService } from '../../azuredeployer.gbapp/services/AzureDeployerService';
|
||||||
import { GuaribasInstance, GuaribasPackage } from '../models/GBModel';
|
import { GuaribasInstance, GuaribasPackage } from '../models/GBModel';
|
||||||
|
@ -375,18 +375,38 @@ export class GBDeployer {
|
||||||
// Skips .gbapp inside deploy folder.
|
// Skips .gbapp inside deploy folder.
|
||||||
if (!e.startsWith('packages')) {
|
if (!e.startsWith('packages')) {
|
||||||
logger.info(`Deploying app: ${e}...`);
|
logger.info(`Deploying app: ${e}...`);
|
||||||
import(e)
|
|
||||||
.then(m => {
|
let folder = Path.join(e, 'node_modules');
|
||||||
const p = new m.Package();
|
if (!Fs.existsSync(folder)) {
|
||||||
p.loadPackage(core, core.sequelize);
|
logger.info(`Installing modules for ${e}...`);
|
||||||
appPackages.push(p);
|
child_process.execSync('npm install', { cwd: e });
|
||||||
logger.info(`App (.gbapp) deployed: ${e}.`);
|
}
|
||||||
|
|
||||||
|
folder = Path.join(e, 'dist');
|
||||||
|
if (!Fs.existsSync()) {
|
||||||
|
logger.info(`Compiling ${e}...`);
|
||||||
|
|
||||||
|
try {
|
||||||
|
child_process.execSync(Path.join(e, 'node_modules/.bin/tsc'), { cwd: e });
|
||||||
|
import(e)
|
||||||
|
.then(m => {
|
||||||
|
const p = new m.Package();
|
||||||
|
p.loadPackage(core, core.sequelize);
|
||||||
|
appPackages.push(p);
|
||||||
|
logger.info(`App (.gbapp) deployed: ${e}.`);
|
||||||
|
appPackagesProcessed++;
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
logger.error(`Error deploying .gbapp package: ${e}\n${err}`);
|
||||||
|
appPackagesProcessed++;
|
||||||
|
});
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
logger.error(`Error compiling .gbapp package ${e}:\n${error.stdout.toString()}`);
|
||||||
appPackagesProcessed++;
|
appPackagesProcessed++;
|
||||||
})
|
}
|
||||||
.catch(err => {
|
}
|
||||||
logger.error(`Error deploying App (.gbapp): ${e}: ${err}`);
|
|
||||||
appPackagesProcessed++;
|
|
||||||
});
|
|
||||||
} else {
|
} else {
|
||||||
appPackagesProcessed++;
|
appPackagesProcessed++;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue