Jenkins Builds - Info and Maintenance
This document records the Jenkins builds set up for synapser dev/staging/validation/release and information about the workers that are used for the builds.
- 1 Build Items
- 1.1 Dev Build
- 1.2 Staging Build
- 1.3 Release Build
- 1.4 Future Work
- 2 Build Scripts
- 3 Workers
Build Items
Below are the items created to cover the workflow mentioned in synapser dev/staging/validation/release. Please read the mentioned document before reading this section. If you wish to modify this section, please consider updating the mentioned document accordingly.
Dev Build
Run on every push
Make sure new changes do not break the build
Do not make change to Github repository
Do not push artifact to RAN (or staging RAN)
Item:
http://jenkins.sagebase.org:8080/job/synapser-dev/
Staging Build
Run on release candidate branches, ideally once; and occasionally, when a patch need to go in before release.
Build the artifacts
Update version, date, and docs, and push changes back to Github repository release candidate branch
Note that this build requirespandoc, and libxml2to be available on the build machine.Push artifacts to staging RAN
Test that artifacts can be installed
Items:
http://jenkins.sagebase.org:8080/job/synapser-staging/
http://jenkins.sagebase.org:8080/job/synapser-staging-deploy/
http://jenkins.sagebase.org:8080/job/synapser-check/
Release Build
Run when a version is released.
Do not make change to Github repository
Push artifacts to RAN
Test that artifacts can be installed
Item:
http://jenkins.sagebase.org:8080/job/synapser-prod-deploy/
http://jenkins.sagebase.org:8080/job/synapser-check/
Future Work
Append an item to run right after release build item, testing the deployment:
Download and install the artifacts on different platform and versions of R - DONE
Load the synapser library and verify that it works - DONE
Build docs - DONE
Build Scripts
Besides jenkins.sh, most build scripts can be found here: https://github.com/Sage-Bionetworks/CI-Build-Tools
Workers
These workers are being used to run r packages on different platform. They could be disconnected for various reasons. This section lists the workers and instructions on how to access them. So that one can re-connect the worker when needed.
In May 2019, while working on
Each build machine should only responsible for 1 version of R. (This decision was made because R v3.5 requires uninstall old versions of R.)
Build machine will has labels
<mac/windows/linux>-RVERS-<version>. For example:mac-RVERS-3.6.
Windows
Location
The EC2 machine is under the AWS Synapse dev account (449435941126).
Access
To log in to the Window machine, first get the password from AWS console:
Click Actions > Connect > Get Password
Upload the
.pemfile to retrieve the password
Install Microsoft Remotes Desktop client
Chose New, and enter the following:
PC Name: enter IP address
User name: Administrator
Password: As returned by AWS
You can now connect to the worker machine.
Ubuntu
Location
The EC2 machine is under the AWS Synapse dev account (449435941126).
Access
To log in to the ubuntu machine, get the instruction from AWS console.
Modify the instruction to use private IP address instead of public one.
Run the
sshcommand in terminal.
Mac
Location
URLs:
Access
ssh
Here is the entry for your ~/.ssh/config
Host macstadium
user administrator
HostName 207.254.40.252
password is on lastpass
From your Mac
From Finder, choose Go > Connect to server ... on the menu bar
Enter serve address: vnc://207.254.40.252
Click Connect. It will prompt you for username and password:
username: administrator
password: on lastpass
Setup and Configuration
To setup a window worker machine, follow instructions in: Setting up a Windows Jenkins worker for R package builds.
To setup a Mac worker machine, follow instructions in: Setting up a Mac Jenkins worker for R package builds.