:white_check_mark: JoliCi - Run your TravisCi builds locally

Overview

JoliCi

JoliCi is a free and open source Continuous Integration Client written in PHP (5.4 minimum) and powered by Docker (please use a recent version). It has been written to be compliant with existent Ci services like Travis-Ci and not create a new standard. (Remove that smile, I KNOW what you're thinking.)

This project is still in beta, there may be bugs and missing features

Build Status Scrutinizer Quality Score

## Usage

Have a .travis.yml in your project

Download the last version of jolici and run it, i.e. for v0.3.1:

wget https://github.com/jolicode/JoliCi/releases/download/v0.3.1/jolici.phar
php jolici.phar run

First run can be quite long since it has to build everything from the beginning. Subsequent build should be faster thanks to docker caching.

JoliCi Demo

If you want to see what happens behind this black box:

php jolici.phar run -v

## Ci supported

  • Travis-Ci
  • ...

I want to read more

Credits

License

View the LICENSE file attach to this project.

Comments
  • Error 500

    Error 500

    Using the latest version (dev-master through Composer or the latest phar) I get the following error:

    [GuzzleHttp\Exception\ServerException]
    Server error response [url] /build?q=1&t=543b02a31d5da-php-5.3&nocache=0&rm=0 [status code] 500 [reason phrase] Internal Server Error
    

    Above that, my console is flooded with PHP notices:

    Notice: fwrite(): send of 5 bytes failed with errno=32 Broken pipe in phar:///myproject/jolici.phar/vendor/stage1/docker-php/src/Docker/Http/Adapter/DockerAdapter.php on line 96
    

    I tried debugging, I moved into the temp directory and ran docker build . => it works (runs the tests just fine). By the way, the travis.yml is ultra basic. So it seems there's a problem connecting to docker.

    I have installed Docker on OS X with boot2docker, using Homebrew. Docker works fine.

    I also tried jolici run --docker-host="tcp://192.168.59.103:2375" but I get the same result ($DOCKER_HOST is correctly defined by the way).

    Any idea?

    bug 
    opened by mnapoli 13
  • problème sur mon premier essai de JoliCi #tristesse #noob

    problème sur mon premier essai de JoliCi #tristesse #noob

    excusez ma noobitude mais je n'arrive pas à builder un projet avec un .travis.yml

    j'ai bien pull les images jolicode/php54 etc ...

    je me mange un

    [GuzzleHttp\Exception\ServerException]                                                                             
      Server error response [url] /build?q=1&t=53ac2c0f75093-php-5.4&nocache=0&rm=0 [status code] 500 [reason phrase] Internal Server Error                                                                                               
    

    dites moi si il faut plus de détails

    opened by omansour 13
  • Unable to run on Windows

    Unable to run on Windows

    I'm unable to run the JoliCi (phar) on Windows as there is no support for unix sockets.

    Docker uses a port forwarding for SSH.

    2014/08/02 11:50:46 Creating VM boot2docker-vm...
    2014/08/02 11:50:46 Apply interim patch to VM boot2docker-vm (https://www.virtualbox.org/ticket/12748)
    2014/08/02 11:50:46 Setting NIC #1 to use NAT network...
    2014/08/02 11:50:47 Port forwarding [ssh] tcp://127.0.0.1:2022 --> :22
    2014/08/02 11:50:47 Port forwarding [docker] tcp://127.0.0.1:2375 --> :2375
    2014/08/02 11:51:31 Setting NIC #2 to use host-only network "VirtualBox Host-Only Ethernet Adapter #2"...
    2014/08/02 11:51:31 Setting VM storage...
    2014/08/02 11:51:41 Done. Type `c:\Program Files\Boot2Docker for Windows\boot2docker.exe up` to start the VM.
    
    opened by sstok 11
  • Client Error Response (404) on first try

    Client Error Response (404) on first try

    Hello,

    I tried jolici on a random simple project. It worked the second time I ran jolici. But first here is what I got:

    error while running jolici for the first time

    I had this issue 2 times (once for php 5.4 and once for 5.5). So I guess that it's a redundante issue.

    enhancement next-release 
    opened by Nek- 9
  • Reload packagist to register 0.2.3

    Reload packagist to register 0.2.3

    The version 0.2.3 is an important bugfix since it allow to install jolici in a standard environment (with default minimum stability).

    Too bad it's not on packagist :( . You can reload from packagist to make him recognize the new version. (this procedure need somebody how as full rights on this project)

    https://packagist.org/packages/jolicode/jolici

    opened by Nek- 9
  • Cannot open socket connection

    Cannot open socket connection

    Hello,

    I try to build my project but got the following error. I don't know what happen but my docker is working and permissions are ok to work.

    Creating builds...
    1 builds created
    
    Running job php = 5.4
    
    
    
    
      [GuzzleHttp\Exception\RequestException]                            
      Cannot open socket connection: No such file or directory [code 2]  
    
    
    
    Exception trace:
     () at /home/maxime/.composer/vendor/stage1/docker-php/src/Docker/Http/Adapter/DockerAdapter.php:100
     Docker\Http\Adapter\DockerAdapter->createResponse() at /home/maxime/.composer/vendor/stage1/docker-php/src/Docker/Http/Adapter/DockerAdapter.php:70
     Docker\Http\Adapter\DockerAdapter->send() at /home/maxime/.composer/vendor/guzzlehttp/guzzle/src/Client.php:186
     GuzzleHttp\Client->send() at /home/maxime/.composer/vendor/guzzlehttp/guzzle/src/Client.php:149
     GuzzleHttp\Client->get() at /home/maxime/.composer/vendor/stage1/docker-php/src/Docker/Manager/ImageManager.php:39
     Docker\Manager\ImageManager->findAll() at /home/maxime/.composer/vendor/jolicode/jolici/src/Joli/JoliCi/Vacuum.php:187
     Joli\JoliCi\Vacuum->getJobs() at /home/maxime/.composer/vendor/jolicode/jolici/src/Joli/JoliCi/Vacuum.php:142
     Joli\JoliCi\Vacuum->getJobsToRemove() at /home/maxime/.composer/vendor/jolicode/jolici/src/Joli/JoliCi/Vacuum.php:62
     Joli\JoliCi\Vacuum->clean() at /home/maxime/.composer/vendor/jolicode/jolici/src/Joli/JoliCi/Command/RunCommand.php:74
     Joli\JoliCi\Command\RunCommand->execute() at /home/maxime/.composer/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:253
     Symfony\Component\Console\Command\Command->run() at /home/maxime/.composer/vendor/symfony/console/Symfony/Component/Console/Application.php:874
     Symfony\Component\Console\Application->doRunCommand() at /home/maxime/.composer/vendor/symfony/console/Symfony/Component/Console/Application.php:195
     Symfony\Component\Console\Application->doRun() at /home/maxime/.composer/vendor/symfony/console/Symfony/Component/Console/Application.php:126
     Symfony\Component\Console\Application->run() at /home/maxime/.composer/vendor/jolicode/jolici/bin/jolici:28
    
    
    run [-p|--project-path[="..."]] [-k|--keep[="..."]] [--no-cache] [--timeout[="..."]] [cmd]
    
    opened by Nek- 8
  • Can't connect to local MySQL server through socket

    Can't connect to local MySQL server through socket

    When trying to run on this project I get

    Step 11 : RUN /bin/bash -c -l "cd $WORKDIR && mysql -e 'CREATE DATABASE IF NOT EXISTS magento_travis;'" ---> Running in 1ac7d117edd1 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

    How can this be resolved?

    opened by steverobbins 6
  • Increase unit tests coverage

    Increase unit tests coverage

    This pull requests increases the coverage of the Job, Matrix and Service classes to 100%.

    It also adds a filter to the phpunit configuration file to exclude the vendor (or other non-source) folders when generating code coverage reports.

    opened by robertmarsal 4
  • Question regarding the number of docker image created

    Question regarding the number of docker image created

    Each build creates a new docker image ? Why not using the same one as it should be immutable ?

    This could be very storage expensive when running hundreds of builds every days

    enhancement next-release 
    opened by aheimburger 4
  • error 61

    error 61

    apologize if it is unrelated

    ~ php jolici.phar run                                                        Luiss-MacBook-Pro-3 [23:44:12]
    Creating builds...
    1 builds created
    
    Running build php-5.5
    
    
    
    
      [GuzzleHttp\Exception\RequestException]
      Cannot open socket connection: Connection refused [code 61]
    
    
    
    run [-p|--project-path[="..."]] [--no-cache] [--timeout[="..."]] [--docker-host[="..."]] [cmd]
    
    
    opened by cordoval 4
  • Contributing new languages guidelines

    Contributing new languages guidelines

    I'd like to add Python support to this. From a quick perusal, it appears the steps would be:

    1. Make python .twig files in resources/templates/python
    2. Add python to the TravisCIBuildStrategy.php with relevant values (in $defaults)
    3. Create python docker files here: https://github.com/jolicode/docker-images

    Am I missing any steps? I think documenting this well would lead to others filling in the gaps with language coverage as their own needs arose.

    opened by Chris7 3
Releases(v0.3.1)
Owner
JoliCode
We build quality Web and mobile applications.
JoliCode
Run locally to export crypto tx data from crypto exchanges using their api connections, and process into a normalised format.

CryptoCredible The missing crypto-exchange data exporter tldr: run locally to export your crypto tx data from popular exchanges via api connections. E

Lee Overy 6 Apr 6, 2022
Builds PHP so that multiple versions can be used side by side.

php-build php-build is a utility for building versions of PHP to use them side by side with each other. The overall structure is loosly borrowed from

php-build 959 Dec 14, 2022
Builds Cycle ORM schemas from OpenAPI 3 component schemas

Phanua OpenAPI 3 + Jane + Cycle ORM = ?? Phanua builds Cycle ORM schemas from OpenAPI 3 component schemas. Released under the MIT License. WARNING: Th

Matthew Turland 5 Dec 26, 2022
Builds nice, normalized and easy to consume REST JSON responses for Laravel powered APIs.

REST API Response Builder for Laravel Master branch: Development branch: Table of contents Introduction Why should I use it? Usage examples Features E

Marcin Orlowski 614 Dec 26, 2022
Run your WP site on github pages, php innovation award winner https://www.phpclasses.org/package/12091-PHP-Make-a-WordPress-site-run-on-GitHub-pages.html

Gitpress Run wordpress directly on github pages Gitpress won the innovation award for may 2021 Read more about this https://naveen17797.github.io/gitp

naveen 13 Nov 18, 2022
Package to manage Laravel translations locally

Translation Manager For Laravel Easy to use package that helps you with the translation of your Laravel application locally. Features ✅ Check all loca

null 5 Jan 8, 2022
A package for Laravel to perform basic git commands on locally integrated packages.

A package for Laravel to perform basic git commands on locally integrated development packages. If working within multiple local development packages or repositories at once this package is meant to ease the burden of navigating to each individual repository to perform basic git commands.

null 3 Jul 26, 2022
Mail Web is a Laravel package which catches emails locally for debugging

Mail Web is a Laravel package which catches emails locally for debugging Installation Use the package manager composer to install Mail Web. composer r

Appoly 64 Dec 24, 2022
📦✂️📋📦 Create a mirror of packagist.org metadata for use locally with composer

?? Packagist Mirror ❤️ Recommended by packagist.org ❤️ Announcement: Composer 2 is now available! This mirror is for Composer 1; Composer 2 is very fa

Webysther Nunes 175 Dec 30, 2022
ATOS is a locally hosted application that allows you to easily manage clients/projects, generate invoices against backlogs, and estimate taxes.

Built by freelancer ??‍♂️, for freelancer ?? ?? ???? - ATOS is a locally hosted application that allows you to easily manage clients/projects, generate invoices against backlogs, and estimate taxes.

Jon Belelieu 33 Dec 27, 2022
This package tracks if products exist in Magento by storing the status locally in the DB.

Magento Products This package tracks if products exist in Magento by storing the status locally in the DB. We developed this to prevent multiple calls

JustBetter 14 Nov 11, 2022
Preload your sweet sweet code to opcache with a composer command, making your code faster to run.

Composer Preload Preload your sweet sweet code to opcache with a composer command, making your code run faster. Composer Preload is a composer plugin

Ayesh Karunaratne 197 Dec 6, 2022
run user analytics within your system and track user data inside your database.

WP Local Analytics plugin. run user analytics within your system and track user data inside your database. Installing Go to the plugin page from the W

Gary 5 Dec 21, 2022
WP Local Analytics plugin. - run user analytics within your system and track user data inside your database.

WP Local Analytics plugin. - run user analytics within your system and track user data inside your database.

Gary 5 Dec 21, 2022
Php Debugger to run in terminal to debug your code easily.

What is Dephpugger? Dephpugger (read depugger) is an open source lib to make a debug in php direct in terminal, without necessary configure an IDE. Th

Renato Cassino 190 Dec 3, 2022
A great looking and easy-to-use photo-management-system you can run on your server, to manage and share photos.

Lychee A great looking and easy-to-use photo-management-system. Since the 1st of April 2018 this project has moved to it's own Organisation (https://g

Tobias Reich 6.2k Jan 5, 2023
A great looking and easy-to-use photo-management-system you can run on your server, to manage and share photos.

Lychee A great looking and easy-to-use photo-management-system. Since the 1st of April 2018 this project has moved to it's own Organisation (https://g

Tobias Reich 6.2k Dec 31, 2022
Run patches migration style in your Laravel applications.

This package generates patch files in the same fashion Laravel generates migrations. Each file is timestamped with an up and a down method and is asso

Anthony Rappa 44 Sep 9, 2022
A great looking and easy-to-use photo-management-system you can run on your server, to manage and share photos.

A great looking and easy-to-use photo-management-system you can run on your server, to manage and share photos.

Lychee Organisation 2.3k Jan 1, 2023
A easy way to install your basic yii projetc, we have encrypt database password in phpfile, my class with alot funtions to help you encrypt and decrypt and our swoole server install just run ./yii swoole/start and be happy!

Yii 2 Basic Project Template with swoole and Modules Yii 2 Basic Project Template is a skeleton Yii 2 application best for rapidly creating small proj

null 3 Apr 11, 2022