Install and run PHPCI in Laravel Homestead
PHPCI is a nifty swiss-army-knife for your development toolbox. It provides continuous integration and connects to popular services like GitHub and BitBucket. It will monitor your source repositories for changes, and trigger a new build when it sees activity. Then it will let you know if anything went wrong or can be improved.
This comes in handy to improve your code quality and minimize errors and issues down the road. In the following section we’ll go through the process of installing PHPCI in Homestead.
CI is a good way to run automated tasks on your project at regular or pre-defined intervals and perform the following:
The goal is to improve code quality and catch any issues prior to deployment. If you really trust your tests and CI build process, you might even automatically push to master branch if the build is successful.
Add a new database “phpci” to Homestead using your favorite SQL admin tool, maybe something like Sequel Pro.
Open your Terminal, SSH into your homestead VM, and clone phpci to a dedicated folder outside of the shared folder:
git clone https://github.com/Block8/PHPCI.git
Get all the dependencies:
Using the following answers:
Add cron job to automatically run builds:
sudo env EDITOR=nano crontab -e
Add the following to the cron file:
* * * * * sudo php /home/vagrant/PHPCI/console phpci:run-builds
Update MySQL configuration:
sudo nano /etc/mysql/my.cnf
(Continue, even if the file doesn’t exist.) And add the following values in the [mysqld] section:
[mysqld] max_allowed_packet=64M innodb_log_file_size=512M innodb_log_buffer_size=768M
Restart the MySQL service:
sudo service mysql restart
Update PHP configuration:
sudo nano /etc/php5/cli/php.ini
With (leave as is if it is already larger than 1024M):
Let’s exit out of homestead:
Edit homestead config:
And add your new PHPCI site:
sites: — map: phpci.dev to: /home/vagrant/PHPCI/public
Update your hosts file:
sudo nano /etc/hosts
And add the relevant entry:
Now restart Homestead and provision it:
homestead halt && homestead up --provision
Open your browser and go to: http://phpci.dev:8000. You should now be able to log in using the email address and password specified in step #4.
From here on in just follow all the same established PHPCI procedures as documented in their wiki: https://github.com/Block8/PHPCI/wiki
In a future post I will discuss setting up a Laravel project and showing off all PHPCI can offer.