This is a replication for the IHTSDO GitHub wiki - https://github.com/IHTSDO/ops-docs/wiki
The build and release process is broken into a number of distinct stages.
The build process is run by Jenkins and Maven, with Jenkins triggering the build and controlling progress through the stages, and Maven doing the actual build.
As was as the usual collection of jars, Debian native packages are produced using thejdeb Maven plugin.
A job should exist that, each night, runs SonarQube against a code base, producing a code quality report.
The broad life cycle runs as follows:
ansible-playbook -i inventory/INVENTORY_FILE system_setup.yml -u root
ansible-playbook -i inventory/INVENTORY_FILE snomed_release_service.yml
For the first deployment on a Google Compute instance, some issues were encountered. If these turn out to be a regular occurance, then we could automate the work-arounds in system-setup.yml above.
sudo usermod -u 4012 ansible #...and chown their home directory if required: cd /home sudo chown -R ansible:ansible ansible
sudo apt-get install apt-transport-https
mkdir /root/.ssh chmod 700 /root/.ssh
Further investigation is needed as to what happens to the keys here if users attempt to ssh in as root directly.
ssh-keyscan -H someIpOrHostname >> ~/.ssh/known_hosts