angelscripts-cell-mitosis v1.4.0
angelscripts-cell-mitosis
Angel scripts for deploying organic cell on vps infrastructure.
Designed to work with a cell within monorepo following stem skeleton 2.1.0.
How to install
The minimal version of nodejs is: Nodejs version 8+
Open your terminal and run:
cd /path/to/cell
npm install angelscripts-cell-mitosis --save-devVPS requirements
Ubuntu version 14.04+ or Debian version 7+ server with ssh access
localhost requirements
sshscpgittar
Usage
angel cell mitosis :mitosisName :versionChange
Start a cell mitosis. This essentially deploys the current working cell to a remote outlined by the mitosis structure in cell's dna:
{
cwd: '...',
build: { ... },
mitosis: {
name: String,
target: {
domain: String,
ip: String
},
versionChange: String, // "major", "minor", "patch", "current", "prerelease-<identifier>"
mode: String,
zygote: Boolean,
mergeDNAFrom: String
}
}short way is using $ angel cell mitosis :mitosisName having versionChange defined in mitosis dna.
uses
versionChangeto setpackagejson.versionand git commits/pushes.Note you need to have git configured to push to default remote.
- using
currentas versionChange indicates to skip version bump using
prerelease-<identifier>as versionChange indicates to bump a prerelease with providedidentifier
packs current working cell by reading its name from
packagejson.nameNote that having
packagejson.scripts.buildpresent will flag that the cell can be build vianpm run buildand will engage mitosis using cell's build artifact expected at/distfolder. Otherwise packs:
/dna/cells/{cwd}/cells/node_modules/package.json
- uploads to
mitosis.target.ipat/home/node/deployments/cells/{cellName}-{packagejson.version}-{cellMode}/deployment.tar.gz unpacks
deployment.tar.gzinto its containing directoryNote that having
mergeDNAFrompresent indicates a source directory location which will be copied over the unpacked/dnafolder. This is usually used to provide server stored secrets.For cells which are not build
npm i --productionis performed for the monorepo and the deployed cell.writes delpoymentJSON having contents:
Located at
/home/node/deployments/enabled/{name}-{version}-{mitosis.mode}.json{ name: packagejson.name, cwd: process.cwd(), version: packagejson.version, nodeVersion: packagejson.engines.node, endpoint: String, // computed based on mitosisDNA port: '@cell-ports.{cellName}', mountpoint: '@cell-mountpoints.{cellName}', mitosis: MitosisDNA domain: MitosisDNA.target.domain }Optionally for zygote mitosis writes the same deploymentJSON to
/home/node/deployments/running/{name}-{version}-{mitosis.mode}.json
angel cell apoptosis :mitosisName
This essentially deletes on the remote:
/home/node/deployments/enabled/{name}-{version}-{mitosis.mode}.json/home/node/deployments/running/{name}-{version}-{mitosis.mode}.json
Related
Testing
You're more than welcome to contribute tests for this repo.
Contributing
We :hearts: contribution. Please follow these simple rules:
- Keep the
README.mdup-to-date with changes - Have fun :fire::rocket::shipit: