2.0.0 • Published 4 years ago

strider-simple-runner v2.0.0

Weekly downloads
56
License
MIT
Repository
github
Last release
4 years ago

strider-simple-runner

Worker Picture

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

Build Status

Spec

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

Config

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

Events

Expected to consume

  • 'job.new'
{
  id: Oid,
  type: 'TEST_ONLY' | 'TEST_AND_DEPLOY',
  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: 'example.com/repo.git',
    display_url: 'http://example.com/repo',
    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: 'example.com/repo.git',
    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

Providers:

  • git
  • github

Tests

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

License

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

Credits

Picture of worker ant CC-BY myprofe from http://www.flickr.com/photos/myprofe/5883651745/sizes/m/in/photostream/

2.0.0

4 years ago

1.1.0

6 years ago

1.0.2

7 years ago

1.0.0

8 years ago

0.15.2

8 years ago

0.15.1

8 years ago

0.15.0

8 years ago

0.14.0

8 years ago

0.13.1

10 years ago

0.13.0

10 years ago

0.12.1

10 years ago

0.12.0

10 years ago

0.11.3

10 years ago

0.11.2

10 years ago

0.11.1

10 years ago

0.11.0

10 years ago

0.10.0

11 years ago