build-dir

0.7.1 • Public • Published

build-dir Build status for build-dir on Circle CI.

Get a place to put your build.

Why?

  • Fast and convenient, easy to set up.
  • Namespaces builds in a human-friendly manner.
  • Encourages cache-safe URLs.
  • Uses a solid convention, build/<branch>/<version>.
  • Gracefully handles edge cases for git branches.

Install

npm install build-dir --save

Usage

Get it into your program.

const buildDir = require('build-dir');

Get a path to use when writing the build.

buildDir().then((dirPath) => {
    console.log('Build directory:', dirPath);
    // 'build/master/1.0.0'
});

Get the path that was used for the most recent build.

buildDir.latest().then((dirPath) => {
    console.log('Build directory:', dirPath);
});

Set up convenient latest-build and branch-specific latest links.

buildDir.link().then(() => {
    console.log('Linking complete.')
    // latest-build -> build/<branch>/latest -> build/<branch>/<version>
});

Let us manage the lifecycle steps for you.

buildDir.prepare().then((dir) => {
    // Put stuff in here:
    console.log('Temp dir:', dir.path);
 
    // ... some time later ...
 
    // Move the temp dir to its permanent home and set up
    // latest links.
    return dir.finalize();
});

API

buildDir(option)

option

Type: object

Build data.

cwd

Type: string
Default: process.cwd()

The parent directory of the build root.

branch

Type: string

Use the given branch name, instead of asking git.

version

Type: string

Use the given version, instead of asking build-version.

buildDir.latest(option)

Same as buildDir(), except the branch defaults to the most recently built branch and version defaults to the most recently built version of the branch.

buildDir.link(option)

Takes cwd, branch, and version on the option object.

Within the cwd, writes a symlink at latest-build pointing to build/<branch>/latest and from there to version.

buildDir.prepare(option)

Returns a promise for an object with these fields:

  • path is a newly created temporary directory for you to write the build to.
  • finalize() moves path to its final location and runs buildDir.link() on it.

Related

Contributing

See our contributing guidelines for more details.

  1. Fork it.
  2. Make a feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request.

License

MPL-2.0 © Seth Holladay

Go make something, dang it.

Package Sidebar

Install

npm i build-dir

Weekly Downloads

3

Version

0.7.1

License

MPL-2.0

Last publish

Collaborators

  • sholladay