# CI Server

Free software and Open Source from University of Bern :: IML - Institute of Medical Education

📄 Source: <https://git-repo.iml.unibe.ch/iml-open-source/imldeployment> \
📜 License: GNU GPL 3.0 \
📗 Docs: <https://os-docs.iml.unibe.ch/imldeployment/>

- - -

## Description

CI node that checks out projects from git repositories and builds an deployable archive.
The archives can be synched to multiple deployment targets e.g. puppet master or a protected software archive.

## Related projects

* CI package server <https://git-repo.iml.unibe.ch/iml-open-source/ci-pkg>
* Deployment client written in bash <https://git-repo.iml.unibe.ch/iml-open-source/imldeployment-client>

## Features

* API to start a build from somewhere, e.g. from a devops workplace or Gitlab server
* checkout from git via SSH with multiple ssh keys (can be extended with a plugin)
* build has hooks to customize build process
* In our institute it builds projects written in
  * PHP
  * NodeJS - using NVM for custom Node versions
  * Ruby - using RVM for custom Ruby versions
* sync built archives to deploy systems
* trigger rollout via ssh command or AWX API call (can be extended with a plugin)
* receives install status 
* sends messages (email, Slack)

## Screenshot

The overview over all projects is the starting page after login. It shows all projects and which build is rolled out to which phase.

![Project overview](docs/images/screenshot_overview_all_projects.png)