How to Install Sismo

Posted on by Matthias Noback

So, as easy as Fabien makes this look like, in my case it wasn't that easy to get Sismo (his small yet very nice personal continuous integration "server") up and running on my local machine. These were the steps I had to take:

  1. Create a directory for Sismo, e.g. /Users/matthiasnoback/Sites/sismo

  2. Download sismo.php and copy the file to the directory you have just created

  3. Create a VirtualHost for Sismo (for example, use sismo.local as a server name

  4. Set the data directory and the location of the config.php file in your VirtualHost configuration

  5. Also add these locations to your shell profile, in my case ~/.profile (restart your console afterwards to make the changes effective)

  6. Modify your hosts file (/etc/hosts or the like) so sismo.local indeed points to your machine

Below you will find my VirtualHost configuration:

<VirtualHost *:80>
  SetEnv SISMO_DATA_PATH "/Users/matthiasnoback/Sites/sismo/data"
  SetEnv SISMO_CONFIG_PATH "/Users/matthiasnoback/Sites/sismo/config.php"

  ServerName sismo.local
  DocumentRoot /Users/matthiasnoback/Sites/sismo

  <Directory "/Users/matthiasnoback/Sites/sismo">
    Order allow,deny
    Allow From All
  </Directory>
</VirtualHost>

And I added these lines to ~/.profile

export SISMO_DATA_PATH=/Users/matthiasnoback/Sites/sismo/data/
export SISMO_CONFIG_PATH=/Users/matthiasnoback/Sites/sismo/config.php

Set permissions

Now, since your web user is probably someone else then your CLI user and you want to use Sismo both from the command line and from the browser, you should allow yourself and the web user read and write access to the data directory you provided in the VirtualHost configuration.

I ran these commands (from within the Sismo directory) to accomplish that (based on this gist).

USER=$(whoami)
APACHE_USER=$(ps axho user,comm|grep -E "httpd|apache"|uniq|grep -v "root"|awk 'END {print $1}')

sudo chmod +a "$USER allow delete,write,append,file_inherit,directory_inherit" .
sudo chmod +a "$APACHE_USER allow delete,write,append,file_inherit,directory_inherit" .

Finally, sismo.php should be readable by everyone, so run

chmod 0644 sismo.php

config.php

Of course you still have to provide Sismo with a list of your projects and their settings, which is described quite well in the Sismo README on Github.

So now I can run

php sismo.php build

and visit

http://sismo.local/sismo.php

to see a pretty list of projects and their latest results.

Testing PHP continuous integration Sismo