Skip to content
This repository has been archived by the owner on Oct 1, 2022. It is now read-only.

TigerOS CI

axk4545 edited this page Apr 6, 2018 · 15 revisions

Some legacy documentation can be found at:

Building ISOs

Building RPMs


TigerOS CI

The overall setup is described below. We currently have a separate web server and build host. Policy for access to these is described on the main TigerOS Development page.

Basic Setup

The web server is a CentOS system that hosts our public ISO downloads and our package repository. It is provisioned using playbook.yml under build-scripts in the repo.

The builder is a Fedora system provisioned using playbook-builder.yml under build-scripts in the repo. It will soon be configured as a GitLab Runner and automatically rebuild our RPMs as changes are made.

We are currently working to automate the building of RPMs on our build server when a push is made to the master branch of a repository housing the source for one of our RPMs.

When that push occurs, the following sequence of commands is triggered on the build server:

sudo rm -rf /home/$USER/to-sign/
mkdir -p /home/$USER/to-sign/
copr-rpmbuild scm --clone-url https://github.com/RITlug/$name-of-tigeros-package --chroot fedora-27-x86_64 
sudo cp /var/lib/copr-rpmbuild/results/*.rpm /home/$USER/to-sign
rm -rf /var/lib/copr-rpmbuild/results

A notification is then sent to IRC and Slack that the build has completed and the responsible team member connects to the build server via SSH and runs the command below.

sudo rpmsign --addsign /path/to/to-sign/directory/*rpm

They then rsync the new packages to the mirror and after verifying permissions run:

sudo createrepo --update /path/to/RPMs or SRPMs

on the mirror.

Currently, ISOs are made as needed via make-iso.sh and will eventually use a dedicated script that will run on the build host.


Below are the Jenkins and Docker configurations maintained for legacy purposes should they be needed in the future.

Jenkins Config

if [ ! -d tigeros/ ]; then
    git clone -b devel https://github.com/ritlug/tigeros
    chmod +x tigeros/build-scripts/ci-build-mock.sh
fi
cd tigeros/
git pull
sudo build-scripts/ci-build-mock.sh

New Docker config for Jenkins (WIP)

[ ! -e out/ ] || rm -rf out/ ; docker build . --force-rm --tag tigerosbuild && setenforce 0 && docker run -v "$(pwd)"/out:/app:z --privileged=true --network=bridge --rm --cap-add=CAP_SYS_ADMIN tigerosbuild ; setenforce 1