2017 © Pedro Peláez
 

project ci

Simple and fast CI server

image

funivan/ci

Simple and fast CI server

  • Thursday, November 24, 2016
  • by funivan
  • Repository
  • 1 Watchers
  • 0 Stars
  • 0 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 2 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

Installation

  • git clone https://github.com/funivan/ci.git
  • cd ci
  • composer install
  • touch database/database.sqlite
  • php artisan migrate
  • edit configuration file ci.app.php
  • add to cron * * * * * php artisan schedule:run >> /dev/null 2>&1
  • clone your repository to build directory. You can change location inside ci.app.php

Manual usage

  • add commit to the queue php artisan ci:add master 0270966ad4a47e73c1ffcd28f5895b74da1b205f dev@funivan.com
  • check commit php artisan ci:check 1

How check commit automatically?

Create git hook post-receive, (*1)

#!/bin/sh
#
# An example hook script for the "post-receive" event.
#
# The "post-receive" script is run after receive-pack has accepted a pack
# and the repository has been updated.  It is passed arguments in through
# stdin in the form
#  <oldrev> <newrev> <refname>
# For example:
#  aa453216d1b3e49e7f6f98441fa56946ddcd6a20 68f7abf4e6f922807889f52bc043ecd31b79f814 refs/heads/master
#

SERVER_URL="ci.yourserver.com";

trigger_hook() {
        NEWREV="$2"
        REFNAME="$3"

        if [ "$NEWREV" = "0000000000000000000000000000000000000000" ]; then
                # Ignore deletion
                return
        fi

        case "$REFNAME" in
                # Triggers only on branches and tags
                refs/heads/*|refs/tags/*) ;;
                # Bail out on other references
                *) return ;;
        esac

        BRANCH=$(git rev-parse --symbolic --abbrev-ref "$REFNAME")
        COMMITTER=$(git log -1 "$NEWREV" --pretty=format:%ce)
        MESSAGE=$(git log -1 "$NEWREV" --pretty=format:%s)

        echo "Sending webhook"
        curl "http://$SERVER_URL/add-commit?hash=$NEWREV$branch=$BRANCH"
}

if [ -n "$1" -a -n "$2" -a -n "$3" ]; then
  PAGER= trigger_hook $1 $2 $3
else
  while read oldrev newrev refname; do
    trigger_hook $oldrev $newrev $refname
  done
fi

For developers

  • clone this repository
  • run touch database/database.sqlite
  • create .env file with the following code
  APP_ENV = dev
  • run php artisan migrate:refresh
  • start server ./artisan serve
  • open http://localhost:8000/

The Versions