GithubHelp home page GithubHelp logo

ci-server's Introduction

ci-server

A simple CI server that runs tests on your repo. Aims to be very extendable and configurable.

Currently a very early project but the goal is to have:

  • Webhook for CI builds from e.g. Github or Bitbucket
  • Docker containers that the tests run in. Instead of checking out into a subdir a docker container will be started that runs all tests. This will keep the code isolated and sandboxed. (opt in, checkin to subdir should still be possible)
  • Fetch script that fetches repo and checks for any updates. Runs a new build for each new commit (opt in)
  • Work with Github Pull requests (opt in)
  • Push status of builds to Slack (opt in)
  • Simple web frontend with Node where it is possible to see output from user-script.sh (opt in, run server and provide domain name, open ports etc to make it public)

Usage

1. Configure

Add a new file user.cfg at the root of this project, it will overwrite the defaults. Add your repo url as repo_url in this file. (you can check the defaults.cfg for all available options)

// user.cfg
repo_url="https://github.com/halmhatt/ci-server.git"

If the server that you run this on is able to checkout with ssh then you could also use a ssh url.

2. User script

There is a file called user-script.sample.sh, rename this file to user-script.sh. This will be run in the repo after checkout. Add anything you want into this file and make it return a none zero exit code if tests fail.

This file looks something like this as default

npm install
npm test

This will install all npm dependencies and then run the tests. But you could do anything, bower install, make test, pip install...

3. Run

Execute the file run.sh

$ ./run.sh

This should create a build directory build/0001 and checkout your code to build/0001/repo.

ci-server's People

Contributors

halmhatt avatar

Watchers

 avatar

ci-server's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.