exframe-testing
Advanced tools
Comparing version 3.3.3 to 3.3.4
40
cli.js
@@ -6,2 +6,3 @@ #!/usr/bin/env node | ||
const childProcess = require('child_process'); | ||
const yaml = require('js-yaml'); | ||
const fs = require('fs'); | ||
@@ -55,9 +56,16 @@ const log = require('exframe-logger').create('token'); | ||
const serviceHealthPath = serviceConfig.healthPath || '/health'; | ||
const dockerComposeExists = fs.existsSync('./docker-compose.yml'); | ||
let defaultArgs = argv._; | ||
if (argv._.length === 0) { | ||
if (dockerComposeExists && argv._.length > 0) { | ||
const dockerComposeFile = yaml.load(fs.readFileSync('./docker-compose.yml')); | ||
defaultArgs = argv._.join(' ').replace(dockerComposeFile.services[containerName]?.command, '').split(' '); | ||
} | ||
if (defaultArgs.length === 0) { | ||
unit = true; | ||
contract = true; | ||
} else { | ||
unit = argv._.indexOf('unit') >= 0; | ||
contract = argv._.indexOf('contract') >= 0; | ||
unit = defaultArgs.some(arg => arg === 'unit'); | ||
contract = defaultArgs.some(arg => arg === 'contract'); | ||
} | ||
@@ -153,11 +161,11 @@ | ||
log.info('Updating docker images'); | ||
await spawnAsync('docker-compose', ['pull']); | ||
await spawnAsync('docker', ['compose', 'pull']); | ||
log.info('Bringing up database environment'); | ||
await spawnAsync('docker-compose', ['up', '-d', '--no-deps', 'mongodb']); | ||
await spawnAsync('docker-compose', ['up', '-d', '--no-deps', 'mongo']); | ||
await spawnAsync('docker-compose', ['up', '-d', '--no-deps', 'mongo-seed']); | ||
await spawnAsync('docker', ['compose', 'up', '-d', '--no-deps', 'mongodb']); | ||
await spawnAsync('docker', ['compose', 'up', '-d', '--no-deps', 'mongo']); | ||
await spawnAsync('docker', ['compose', 'up', '-d', '--no-deps', 'mongo-seed']); | ||
log.info('checking for database seeding container'); | ||
const composeUp = childProcess.spawnSync('docker-compose', ['ps', 'mongo-seed']); | ||
const composeUp = childProcess.spawnSync('docker', ['compose', 'ps', 'mongo-seed']); | ||
const seedExists = composeUp.stdout.toString('utf8').indexOf('mongo-seed') !== -1; | ||
@@ -177,3 +185,3 @@ | ||
log.error({ errorData: e }); | ||
await spawnAsync('docker-compose', ['down']); | ||
await spawnAsync('docker', ['compose', 'down']); | ||
process.exit(1); // eslint-disable-line no-process-exit | ||
@@ -184,13 +192,13 @@ } | ||
if (argv.build) { | ||
await spawnAsync('docker-compose', ['up', '--build', '-d', '--no-recreate']); | ||
await spawnAsync('docker', ['compose', 'up', '--build', '-d', '--no-recreate']); | ||
} else { | ||
await spawnAsync('docker-compose', ['up', '-d', '--no-recreate']); | ||
await spawnAsync('docker', ['compose', 'up', '-d', '--no-recreate']); | ||
} | ||
log.info(`Killing ${containerName}`); | ||
await spawnAsync('docker-compose', ['kill', containerName]); | ||
await spawnAsync('docker', ['compose', 'kill', containerName]); | ||
log.info(`Removing ${containerName}`); | ||
await spawnAsync('docker-compose', ['rm', '-f', containerName]); | ||
await spawnAsync('docker', ['compose', 'rm', '-f', containerName]); | ||
log.info(`Starting ${containerName}`); | ||
const container = childProcess.spawn('docker-compose', ['run', '--name', containerName, '--service-ports', '--entrypoint', `npm test ${argv._.join(' ')} -- -l ${argv.teamcity ? '--teamcity' : ''}`, containerName]); | ||
const container = childProcess.spawn('docker', ['compose', 'run', '--name', containerName, '--service-ports', '--entrypoint', `"npm test ${defaultArgs.join(' ')} -- -l ${argv.teamcity ? '--teamcity' : ''}"`, containerName], { shell: true }); | ||
container.stdout.pipe(process.stdout); | ||
@@ -203,7 +211,7 @@ container.stderr.pipe(process.stderr); | ||
const outFile = fs.openSync(logFile, 'w'); | ||
childProcess.spawnSync('docker-compose', ['logs', '--no-color'], { stdio: ['pipe', outFile, outFile] }); | ||
childProcess.spawnSync('docker', ['compose', 'logs', '--no-color'], { stdio: ['pipe', outFile, outFile] }); | ||
fs.closeSync(outFile); | ||
if (argv.down) { | ||
log.info('Tearing down the environment'); | ||
childProcess.spawnSync('docker-compose', ['down'], { stdio: 'inherit' }); | ||
childProcess.spawnSync('docker', ['compose', 'down'], { stdio: 'inherit' }); | ||
} | ||
@@ -210,0 +218,0 @@ }); |
{ | ||
"name": "exframe-testing", | ||
"version": "3.3.3", | ||
"version": "3.3.4", | ||
"bin": { | ||
@@ -22,2 +22,3 @@ "exframe-testing": "cli.js" | ||
"exframe-logger": "^3.3.0", | ||
"js-yaml": "^4.1.0", | ||
"yargs": "^15.1.0" | ||
@@ -43,3 +44,3 @@ }, | ||
}, | ||
"gitHead": "fadbfb8b9a094ea0c2851c933b94f1c83c7e0da7" | ||
"gitHead": "f4ab7420aea5f4010153ee6969dc72a88937f56d" | ||
} |
32477
514
5
+ Addedjs-yaml@^4.1.0
+ Addedargparse@2.0.1(transitive)
+ Addedjs-yaml@4.1.0(transitive)