Skip to content

Latest commit

 

History

History
75 lines (49 loc) · 2.47 KB

ci_setup.md

File metadata and controls

75 lines (49 loc) · 2.47 KB

CI Setup

Jenkins setup

Example of how to setup Jenkins to install unity automatically on multiple slaves

You might want to do things differently. Here are the decisions we took:

  • we install all Unity versions in the same way (i.e. same Unity platform modules for all installs)
  • we store the slave root passwords in the Jenkins credentials binding.
  • we depend on RVM to be present on the slaves

Prerequisites:

  • Install the same version of RVM on all slaves where you will install u3d
  • add one root password credential per slave in the jenkins setup. Follow the "U3D_PASSWORD_$SLAVENAME" format

jenkins credentials

Required plugins:

Set up an install job:

  • create a freestyle job

  • Add a U3D_VERSION string parameter

jenkins version parameter

  • Configure the nodes you might want to install on as parameters

node parameter

  • Enable console coloring

console coloring

  • Enable RVM

console coloring

  • Configure the slave passwords

configure the slave passwords

  • add an "execute Shell" step
# config. We could make this an option to the job. Or be project specific.
U3D_INSTALL_ARGS=-p Unity,Android,iOS,Linux,Windows,WebGL

# install or update u3d if it isn't already present
if [[ ! `which u3d` ]]; then 
  gem install u3d
else
  gem update u3d
fi

echo "${U3D_INSTALL_ARGS}"

# display whether or not the slave has credentials stored
u3d credentials check

# fetch the password for the slave from the credentials
PASS_KEY=U3D_PASSWORD_${NODE_NAME}
echo "PASS KEY: ${PASS_KEY}"
export U3D_PASSWORD=${!PASS_KEY}

# install the specified version with the specified arguments
u3d install --trace --verbose $U3D_VERSION $U3D_INSTALL_ARGS 
u3d list