mirror of
https://gitlab.silvrtree.co.uk/martind2000/nci.git
synced 2025-01-10 21:05:09 +00:00
bin | ||
data | ||
lib | ||
resources | ||
static | ||
test | ||
views | ||
.bowerrc | ||
.gitignore | ||
.npmignore | ||
app.js | ||
bower.json | ||
dataio.js | ||
db.js | ||
distributor.js | ||
gulpfile.js | ||
httpApi.js | ||
LICENSE.txt | ||
package.json | ||
projectsWatcher.js | ||
README.md | ||
scheduler.js |
nci
nci - Continuous integration server written in node.js
work in progress...
TODO for release 1.0
- Dashboard (builds list, projects autocomlete)
- Build page (build info(dates, changes, etc), console)
- Awesome build output (very close to terminal)
Url for trigger build runYAML project and server(executors count, etc) configsPersistent build and console output informationProject 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, etcSafe id and build numbers generationSchedulerBetter tests coverage- Compile client for production
- Semantic versioning and plugins
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