gittyup v1.0.0
Gittyup is a small node.js application deployment library similar to n.
Features
- Command Line Interface.
- Rollback support.
- Script testing before using.
- Start/Stop/Restart checked out apps.
- Make a slug out of your app and easily move it quickly between servers.
Command Line
gup checkout daisy --repo=https://github.com/crcn/daisy.git --branch=app-branch
gup use daisy r5 #use a particular checkout
Options
help
rollback :name Rollback a repositoriy
history :name Repo history
use :name :release Uses a repo
checkout :name :repo OR checkout :name checks out a repository
Documentation
.gittyup(rootDirectory)
root directory by default is /etc/gittyup/
var gittyup = require('gittyup')('/etc/bonsai/garden/'),
app = gittyup.app('myApp');
app.checkout('myProjectSource', function(err, result)
{
//something went wrong in the checkout phase - most likely in linking, rollback
if(err) return app.rollback();
//test to make sure everythings good
app.test(function(err, result)
{
//something went wrong in the testing phase, rollback
if(err) return app.rollback();
//start upp the application
app.process(function(err, process)
{
process.start();
});
});
});
//...
.app(ops)
First argument can be either a string (app name), or object
arguments
name
- The name of the application.group
- The group the application is in.maxRecords
- Maximum number of application records to keep locally.
.app().checkout(opsOrSource, callback)
opsOrSource
- Options (object) or the repo source (string) for the app. -repository
- repository of the project. Can be local directory, git repo, or .slug file
From a git repository:
gittyup.app('myApp').checkout('git@github.com:spiceapps/gittyup-test.git', function(err, result)
{
//do stuff!
});
From a generated slug:
gittyup.app('myApp').checkout('http://mydomain.com/someApp.slug', function(err, result)
{
});
From a local directory:
gittyup.app('myApp').checkout('/some/local/path', function(err, result)
{
});
.app().process(callback)
Returns a runnable process of the current checked out item.
gittyup.app('myApp').process(function(err, process)
{
process.start(function(err, result)
{
//...
});
process.stop(function(err, result)
{
//...
});
process.restart(function(err, result)
{
//...
});
});
```
#### .app().test(callback)
Tests the most recent checked out item. Make sure to include "scripts:test" in your package.json. Something like:
```javascript
{
"name": "myApp",
"scripts": {
"test": "./test"
}
}
When exiting the test program, an exit code of 0 tells gittyup the test was successful, whereas 1 tells gittyup the test failed.
.app().makeSlug(callback)
Makes a slug out of the current checkout. Use this method if you need to move the application around between servers. Once a slug is made, calling "makeSlug" on the same checkout will have no effect.
gittyup.app('myApp').makeSlug(function(err, item)
{
console.log(item.slug); // /etc/gittyup/apps/myApp/16767565434/slug/753a644f4e7aaa7fc9132be92d000002.tar.gz
});
If you're moving the slug around, install gittyup on the other end and have something ready like this:
gittyup.app('myApp').checkout('http://myServer.com/myApp.slug', function(err, result)
{
//...do stuff with transported slug
})
.app().current(callback)
Returns Information about the current checked out item.
.app().history(callback)
Returns checkout history of the given application.
.app().use(checkoutId)
Uses a previously used checkout item without removing the current one.
.app().remove(checkoutId, callback)
Removes a checked out item.
.app().destroy(callback)
Destroys the application, and all the checked out items.
11 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago