-
Notifications
You must be signed in to change notification settings - Fork 11
TigerOS CI
Some legacy documentation can be found at:
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.
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.
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
[ ! -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
© CC-BY-SA 4.0 – 2018, RIT Linux Users Group