Table of Contents
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.
flowchart LR
subgraph CI server
CI(CI<br>deployment<br>web gui) --> |Build<br>package| PkgDir
PkgDir[Package<br>dir]
end
PkgDir --> |rsync| Pkg1
PkgDir --> |rsync| Pkg2
PkgDir --> |rsync| Pkg3
Pkg1
Pkg1(CI package<br>server 1) --> |secure<br>download| DeployClient
Pkg2(CI package<br>server N)
Pkg3(Puppet master)
DeployClient --> |installs| ApplicationA(Application A)
DeployClient --> |installs| ApplicationB(Application B)
This project is related to
- 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
- 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)
- API to start a build from somewhere, e.g. from a devops workplace or Gitlab server
Screenshots
The overview over all projects is the starting page after login. It shows all projects and which build is rolled out to which phase.
The project overview for a single project: