# 26.09.2021 // CI Docs

Build Servers
---

### Public Servers
3 Public Build Servers
* Windows
* MacOS
* Linux

Can run on any branch
Only contains build tools
Never contains credentials

Running on V-Servers on a public Root-Server

### Internal Servers
3 Internal Build Servers
* Windows
* MacOS
* Linux

Used for Signing and Deployment
Signing Key are local on the Internal Build Servers
Only run on CD Branches
Protected Enviroments
Manual Rollouts

CD Docs
===
Borepin and BFFH are deployed in 3 stages
* Internal
* Beta
* Production

Internal(innov) Stage
---
Tag Borepin: alpha
Tag BFFH: alphav0.1.0-

Borepin deploys to "FabAccess Testing - Intern and Beta"
BFFH deploys to docker-tag "internal"

Versionnumber is JobID

Internal is only for "InnovisionLab"

Foo builds
---
Tag BFFH: `v0\.[0-9]+\.[0-9]+`

* Keine Stabilitätsgarantie
    * Minor version Client<->Server **muss** ident sein
    * Config kann inkompatibel sein


letzte alpha: `v0.N.M`

Bar builds
-----
Tag BFFH: `v0.X.Y` X > N



* Begrenzte Stabilitätsgarantie
    * API is nie wieder broken bis zur v0.X+2.0
    * Automatische updates *sollten* nichts kaputt machen
        * Wenn schon nicht 1a kompatibel dann wenigstens konvertieren
    * ...
    * ...


#### Test builds
Tag BFFH: `v0.X.Y+1-<git tag>`

Stable release
---
Tag BFFH: `v1.0.0`

* Was auf uns dependet geht nicht kaputt















Beta Stage
---
Branche Borepin: beta
Branche BFFH: beta

Borepin deploys to "FabAccess - Beta"
BFFH deploys to docker-tag "beta"

Versionnumber is JobID

Beta is for external Testers

Production Stage
---
Branche Borepin: main
Branche BFFH: main

Borepin deploys to "FabAccess - Production"
BFFH deploys to docker-tag "latest"

Versionnumber is Git-Tag

Production is for all Users