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.
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 libxml2
to 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 - SYNR-1411Getting issue details... STATUS , we decided that:
- 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
.pem
file 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
Ubuntu
Location
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
ssh
command in terminal.
Mac
Location
Access
ssh
- 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: /wiki/spaces/IT/pages/176390212.
To setup a Mac worker machine, follow instructions in: /wiki/spaces/IT/pages/230621187.