Skip to content


Repository files navigation


Worker Picture

Easy-to-configure in-process runner implementation for Strider Continous Deployment. This runner comes bundled with Strider.

Build Status


require('strider-simple-runner').create(emitter, config, done)


All options are optional.

pty(false):              use 'pty' for running commands. Currently disabled
logger(console):         .log, .warn, .error
io(new EventEmitter):    the channel of internal communication with the job worker
processJob(core.process):function to run a job. (task, config, ondone)
pluginDirs:              the directories in which to look for plugins
dataDir($HOME/.strider): the directory in which to clone/test/etc
concurrentJobs(1):       maximum number of jobs to execute at once


Expected to consume

  • ''
  id: Oid,
  user_id: Oid,
  trigger: {
  ref: {
    branch: String,
    id: String // commit id
  // this stuff is not part of the "job" document in mongo, but is added
  project: {
    // project config straight from db, includes plugin config and
    // project level provider config
  userProvider: { // user-level config for the provider. Things like a github
  }               // OAuth token. Retrieved from user.providers.[providerid]

Ex: github provider config

  id: 'github',
  user: {
    token: '1234',
    username: 'hacker'
  project: {
    url: '',
    display_url: '',
    auth: {
      method: 'https',
      username: null, // use user's gh auth
      password: null // use user's gh token

Ex: git provider config

  id: 'git',
  user: {},
  project: {
    url: '',
    method: 'ssh',
    privkey: null, // use repo-level ssh keys
    pubkey: null

Project config looks like:

  name: 'owner/name',
  public: false,
  active: true,
  deploy_on_green: true,
  secret: // what's this for?
  runner: {
    id: 'simple', // or docker, etc.
    pty: false
    // other config for the runner
  privkey: '',
  pubkey: '',
  provider: {}, // provider config
  // owner is implicit, as it's embedded ...
  collaborators: [],
  plugins: [{
    id: 'heroku',
    // plugin config
  }, ...]

Plugins needed:

  • heroku
  • webhooks


  • git
  • github


Strider-simple-runner comes with tests. To run, simply execute npm test.


Strider-simple-runner is released under a BSD license.


Picture of worker ant CC-BY myprofe from