Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

deployment

Package Overview
Dependencies
Maintainers
1
Versions
21
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

deployment

Continuous deployment for the masses. Download the latest version of your GitHub package, run tests and deploy to the specified directory. Run a deployment server to launch deployments from the internet, and integrate with GitHub easily. Includes an API t

  • 0.0.3
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
38
increased by18.75%
Maintainers
1
Weekly downloads
 
Created
Source

Build Status

deployment

Continuous Deployment for the masses.

Download the latest version of your git package, run all tests and deploy to the specified directory. Run a deployment server to launch deployments from the internet, and integrate with GitHub easily. Includes an API to fire deployments from an external source.

Installation

Install from npm:

$ npm install deployments

Or add to your package.json as a dependency.

For manual installation, download from GitHub:

$ git clone https://github.com/alexfernandez/deployment

Install node modules:

$ cd deployment
$ npm install

Et voilà!

Usage

There are three basic ways to start a deployment.

Command Line

To start a deployment from the command line:

$ node lib/deployment.js

Will launch a deployment, using the current directory as deployment directory. The temp directory will be called like current, but reside in ../test'. For instance, if your current directory is /home/af/projects/x', the default test directory will be `/home/af/projects/test/x'.

Web Server

When your server can be reached from the internet, you can start a web server that will listen to requests, by default on port 3470.

$ node bin/deployment-server.js --token wydjzfoytrg4grmy

Any requests coming in with the special, magic token will result in a deployment. From localhost use this URL:

http://localhost:3470/wydjzfoytrg4grmy/deploy

You should see an OK message, or "Bad request" if an incorrect URL is sent.

If a token is not passed and therefore the default token is used, a warning will be shown. To generate a good, random token just write at your Bash console:

$ echo "$(head -c 16 /dev/random | base64 | tr '[A-Z]' '[a-z]' | sed 's/\/\+//g' | head -c 16)"

To access from the outside you can

http://localhost:3470/wydjzfoytrg4grmy/deploy

The resulting external URL can be added as a webhook to GitHub.

API

You can also start a deployment using the API.

Process

The process is standardized as follows:

  • update code in test directory,
  • update node modules in test directory,
  • run package tests in test directory,
  • update code in deployment directory,
  • update node modules in test directory.

As console commands, the sequence would be: $ git pull /home/af/projects/test/x $ npm install /home/af/projects/test/x $ npm test /home/af/projects/test/x $ git pull /home/af/projects/x $ npm install /home/af/projects/x

Service Restart

You will note that we have not mentioned any restart as part of the deployment process. By default `deployment' does not deal with service restart, so how does the new code enter into service? There are several alternatives.

First, deployment' can be configured to run a specified command, passing it an option deploymentCommand' from the API.

Second, the service could be run using `supervisor', which would restart the service automatically right after downloading the new code.

Another option is to run your services in cluster mode, rebooting each worker after a specified time. This scheme does not mesh well with database schema updates, or any other irreversible changes.

Keywords

FAQs

Package last updated on 15 Sep 2013

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc