1.2.0 • Published 8 years ago

async-workflow v1.2.0

Weekly downloads
-
License
ISC
Repository
-
Last release
8 years ago

async-workflow

Run JSON based workflows

npm Travis branch

Example

const Bluebird = require('bluebird')
const Runner = require('async-workflow')

const runner = new Runner({
  startTaskId: 'clone',
  tasks: {
    clone: {
      fn(options) {
        return Bluebird.resolve('clone')
      },
      options: {
        repo: 'knownasilya/async-workflow'
      },
      successTaskId: 'install',
      failureTaskId: 'cleanup'
    },

    install: {
      // Run in parallel
      tasks: {
        installA: {
          fn() {
            return new Bluebird((resolve) => {
              setTimeout(() => {
                resolve('installA')
              }, 300)
            })
          }
        },
        installB: {
          fn() {
            return new Bluebird((resolve) => {
              setTimeout(() => {
                resolve('installB')
              }, 100)
            })
          }
        }
      },
      // Run once all pass or any fail
      successTaskId: 'test',
      failureTaskId: 'cleanup'
    },

    test: {
      fn() {
        return Bluebird.resolve('test')
      },
      successTaskId: 'deploy',
      failureTaskId: 'cleanup'
    },

    deploy: {
      fn() {
        return Bluebird.resolve('deploy')
      }
    },

    cleanup: {
      fn() {
        return Bluebird.resolve('cleanup')
      }
    }
  }
})

const results = await runner.start()

TODO

  • Test parallel tasks
  • Figure out how results should be formatted/passed along
  • Time tasks
  • docker shell run
1.2.0

8 years ago

1.1.0

8 years ago

1.0.0

8 years ago