ci/cd details pages authored by Colton Glick's avatar Colton Glick
The following document contains information about the CI/CD system, including software versions, update instructions, and other information.
# Server setup
- Server Operating System: Red Hat Enterprise Linux (RHEL), as of Oct. 6, 2018 was licensed
- Server architecture: x86_64 (same as amd64)
- Server Hostname: `microcart.ece.iastate.edu` *note can only be ssh'd into when on the campus network, or using the ISU VPN*
- Server users:
- `vm-user` *used for maintenance and manual login*
- `gitlab-runner` *user that executes all of the automated CI/CD commands*
- `ci-user` *use unknown*
- `ucart` *use unknown*
- `xilinx` *use unknown*
- User passwords
- `vm-user`'s password is stored in the hidden CI/CD variables (These are only visible to administrators of the GitLab project). The SSH credentials can be found under settings > CI/CD > Variables > Reveal values.
# Current Software Versions
|Software|Version|Version Check Command|
|-------|-------|------|
|Red Hat Enterprise Linux (RHEL)|7.6|`cat /etc/redhat-release`|
|Linux Kernel|3.10.0|`uname -r`|
|Docker Client|20.10.12|`sudo docker version`|
|Docker Server|20.10.12|`sudo docker version`|
|Docker containerd|1.4.12|`sudo docker version`|
|Git|1.8.3.1|`git --version`|
|GitLab Runner|14.5.0|`sudo gitlab-runner --version`|
|Bitcraze Builder Docker Image|(latest)|`docker pull bitcraze/builder:latest`|
# Software Update Notes
### Docker
Docker does not support RHEL on the x86_64 architecture. It does however support CentOS on x86_64 arch. Because CentOS is a derivative to RHEL we can install the CentOS version instead.
- see https://docs.docker.com/engine/install/centos/ for additional details on installation
- To update docker, it should be as simple as running `sudo yum update docker-ce`
- The repository to pull the CentOS version has already been setup, [more details here](https://docs.docker.com/engine/install/centos/#install-using-the-repository)
- A manual update can be preformed by uninstalling the current version and installing a newer version, [more details here](https://docs.docker.com/engine/install/centos/#install-from-a-package)
### GitLab Runner
Official update documentation can be found here https://docs.gitlab.com/runner/install/linux-manually.html#update
1. Download latest version, for the `amd64` architecture
```bash
# Replace ${arch} with any of the supported architectures, e.g. amd64, arm, arm64
# A full list of architectures can be found here https://gitlab-runner-downloads.s3.amazonaws.com/latest/index.html
curl -LJO "https://gitlab-runner-downloads.s3.amazonaws.com/latest/rpm/gitlab-runner_${arch}.rpm"
```
2. Update with the downloaded package
```bash
rpm -Uvh gitlab-runner_<arch>.rpm
```
### Bitcraze Builder Docker Image
The latest builder image should be automatically pulled from docker hub every time the CI/CD job is triggered (if the local version is older). However the latest image can be pulled manually with the following command
```bash
docker pull bitcraze/builder:latest
```
--------
# References
- [Docker CentOS install](https://docs.docker.com/engine/install/centos/)
- [GitLab Runner Linux install](https://docs.gitlab.com/runner/install/linux-manually.html)
\ No newline at end of file