# Continuous Integration Tools and tips. ## Laminar Ci [Laminar official website](https://laminar.ohwg.net) ### Configure Laminar Laminar installation automatically create a laminar user. To edit files in Laminar config folder (default `/var/lib/laminar/cfg/jobs`) without `sudo`, you can use the GNU/Linux group mechanism : ```sh sudo usermod -a -G laminar jovian chmod -R sudo chmod -R g+w /var/lib/laminar/cfg/ ``` ## Jenkins How to install and administrate Jenkins. This tool is using Java, requiring a lot of memory and CPU resources. It is not recommanded to use it on Rasperry Pi, the UI is slow and unresponsive. ### Install #### Java You need Java 8 or 11 if you have Jenkins above 2.164. ``` sudo apt install openjdk-8-jre ``` #### Raspberry Pi [Jenkins doc : installation](https://jenkins.io/doc/book/installing/#debianubuntu) To execute on debian server ``` wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add - ; sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list' ; sudo apt-get update ; sudo apt-get install jenkins ; ``` Jenkins is now installed as a daemon and you should connect locally to it with a browser to complete installation. `192.168.0.40:8080` #### HTTPS The best way to secure _Jenkins_ is to use the proxy with _Apache_. [Jenkins wiki : running Jenkins behind Apache](https://wiki.jenkins.io/display/JENKINS/Running+Jenkins+behind+Apache) See the _JovianHttpd_ repository to see the template for configuration. ### Integration Integrate Jenkins with other tools #### Gogs ##### Plugin Install `gogs-webhook` plugin. Documentation on [plugins.jenkins.io](https://plugins.jenkins.io/gogs-webhook). ##### Add webhook on Gogs side In the Gogs repository settings, add the _webhook_ `https://jenkins.jovian-hersemeule.eu/gogs-webhook/?job=experiments/connect` Adapt job name. ##### Private communication - Create a Jenkins account on Gogs - Generate an SSH key with `ssh-keygen` - Create credentials under Jenkins and store private key and passphrase - Put SSH public key in Jenkins account on Gogs - On Gogs : Add Jenkins user with _read_ rights to any repository Jenkins has to build #### Apache2 http server How to deploy on a Httpd server. ##### Grant _jenkins_ user You have to set _jenkins_ user owner of the targeted folder. ### Trouble shooting #### Logs In file `/var/log/jenkins/jenkins.log` #### Git describe To allow the command `git describe` to work, go to your job configuration and add an **Advanced Cloned Behaviours** and tick the _tags_ checkbox. ### Configure Configuration parameters can be found at `/etc/default/jenkins` ### Useful plugins #### Basic Branch strategy Useful to build tags.