Coder Social home page Coder Social logo

makeci's Introduction

makeci

Lightweight Make-based continuous integration, written in Haskell using Spock.

Assumptions

  • Your code is hosted on GitHub

  • You repository has a Makefile in its root directory with the rules cibuild and citest.

Install

  • Install the Haskell Platform
  • git clone https://github.com/openbrainsrc/makeci.git
  • cabal install

Configuration

You need to tell makeci which repositories you want to build in the configuration file. This file has one line per repository, in the format {GitHub username}/{repository name}. Example:

glutamate/probably-base
glutamate/matio
glutamate/baysig-platform
openbrainsrc/debcd

You then run makeci (after you have made sure that wherever cabal puts your binaries is in your PATH) with

makeci {configuration_file}

if makeci is invoked with no arguments, it will look for a configuration file in /etc/makeci-repos.

Makeci will try to clone these repositories with

git clone [email protected]:{user_name}/{repository_name}.git

Thus, you will need to have SSH keys in place to access GitHub in this way.

There is an example upstart configuration file in upstart/ if you want to run Makeci as a service under Ubuntu.

Build configuration

Makeci will try to build you repositories by running

make cibuild && make citest

if the output contains a line that starts with file:// then makeci will splice the contents of that file into your job output.

GitHub webhook

Set this as your webhook in GitHub:

http://{server_url}:3001/github-webhook/{repository_name}

But I am not using Make as a build system!

Great, just create a Makefile to invoke whichever build system you are using.

For instance, here is an example Makefile for a Cabal-based project:

cibuild:
	cabal sandbox init
	cabal install --enable-tests

citest:

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.