Document toolboxDocument toolbox

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 requires pandoc, 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-1411 - Getting 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

  1. 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
  2. Install Microsoft Remotes Desktop client
  3. 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

  1. To log in to the ubuntu machine, get the instruction from AWS console. 
  2. Modify the instruction to use private IP address instead of public one.
  3. Run the ssh command 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

  1. From Finder, choose Go > Connect to server ... on the menu bar
  2. Enter serve address: vnc://207.254.40.252
  3. Click Connect. It will prompt you for username and password:
    1. username: administrator
    2. 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.