Go to file
2015-12-08 03:24:13 +03:00
bin set production env at nci bin 2015-07-28 20:14:15 +03:00
data without jquery terminal output 2015-12-03 20:23:34 +03:00
lib add rename project via api 2015-12-04 22:54:21 +03:00
resources manage log lines using db directly 2015-11-30 23:08:54 +03:00
static without jquery terminal output 2015-12-03 20:23:34 +03:00
test add support of cancellation of queued build 2015-11-25 01:41:20 +03:00
views remove scripts dir, build to js dir 2015-07-28 20:25:08 +03:00
.bowerrc react through requirejs 2015-04-10 23:17:03 +03:00
.gitignore build for production using r.js + jade is dev dependency now 2015-07-26 19:59:57 +03:00
.npmignore include static/js/shared into build 2015-11-21 23:04:21 +03:00
app.js http api uses deps via app 2015-12-06 23:46:24 +03:00
bower.json update moment 2015-08-25 23:43:15 +03:00
dataio.js patch dataio to notify resource clients from the server 2015-05-03 18:23:01 +03:00
db.js add rename project via api 2015-12-04 22:54:21 +03:00
distributor.js separate new lines on server 2015-12-03 20:23:34 +03:00
gulpfile.js do not watch for data dir 2015-07-14 01:16:38 +03:00
httpApi.js change http api version 2015-12-08 03:22:23 +03:00
LICENSE.txt update contributors 2015-07-06 01:32:47 +03:00
package.json 0.3.1 2015-12-08 03:24:13 +03:00
projectsWatcher.js fix high cpu usage at start by set watcher depth 2015-07-15 00:52:25 +03:00
README.md update readme 2015-12-08 03:20:58 +03:00
scheduler.js set initiator when trigger build from scheduller 2015-11-23 21:35:52 +03:00

nci

nci - Continuous integration server written in node.js

work in progress...

TODO for release 0.9

  • Dashboard (builds list, projects autocomlete)
  • Build page (build info(dates, changes, etc), console)
  • Awesome build output (very close to terminal)
  • Url for trigger build run
  • YAML project and server(executors count, etc) configs
  • Persistent build and console output information
  • Project relations (blocks, triggers, etc)
  • Writes to stderr must not break the build
  • Mail and jabber notifications (with commits, current step and error)
  • Rename notification strategies according to statuses
  • Work with git
  • Build every commit, commit with tag, etc
  • Safe id and build numbers generation
  • Scheduler
  • Better tests coverage
  • Compile client for production
  • Semantic versioning and plugins
  • Complete uncompleted builds on server start
  • Throw away workspace changes on repository update

Ui fixes

  • speed up console output
  • projects autocomplete
  • add time ago to build list
  • show scm changes on build page
  • react says many many times to console: Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op.
  • show duration details (steps duration) on build page
  • speed up build points animation at ff (maybe borrow something from animate.css?)
  • current successfully streak icons at project page
  • don't appear build from other project on project page
  • update project info changes (avg duration, etc) on the fly - project page
  • long commit comment breakes build card makeup
  • comment start/duration should be on same place during all steps
  • slow move out from build page (with lot of output) to main page - several sec
  • when go on completed build page you scroll down to the output which could be very long
  • when long line appear console output row numbers not on the same line with content
  • some "undefined" comments in scm changes
  • should write at the end of build console out that build is done (or error)

Roadmap

  • Responsive ui (persistent connection via socketio or something else + data streams (from shell commands, etc))
  • Console output should be very close to the terminal output
  • Shell command is the main script
  • Tasks relations can be set easily (runAfter, runBefore, prevents, prevented) it also can be attached to the specific branch or commit (e.g. release commits can trigger auto deploy tasks)
  • Ability to build every or specified commits (even if they pushed in a bunch)
  • Simple API for triggering build on scm hook
  • Project dependencies (all projects specified at dependencies should be built before build current project) and optional start for all projects after ci restart
  • Build can be continued from the current failed step
  • Failing of build step can be prevented if special condition for the build step is defined and matched (e.g. ui tests timeout error or internet connection problems detected by regexp) then step will be rerun without error
  • Approximate remaining build time should be shown
  • Named build steps
  • Ability to change build parameters from ui (at least target branch)
  • Embedded database (apparently level db)
  • Lightweight (minimal dependencies)
  • Cancel build