Skip to content

Instantly share code, notes, and snippets.

@jonforums
Created October 8, 2012 00:56
Show Gist options
  • Save jonforums/3850176 to your computer and use it in GitHub Desktop.
Save jonforums/3850176 to your computer and use it in GitHub Desktop.
RI Jenkins CI slave script
@ECHO OFF
SETLOCAL ENABLEEXTENSIONS
:: EDIT THIS CONFIGURATION
:: Remove unnecessary env vars
SET ANDROID_HOME=
SET ChocolateyInstall=
SET GNUWIN=
SET INTEL_LICENSE_FILE=
SET SSH_AGENT_PID=
SET SSH_AUTH_SOCK=
SET VBOX_INSTALL_PATH=
SET VTUNE_AMPLIFIER_XE_2011_DIR=
:: Base PATH
SET PATH=C:\Windows\system32;C:\Windows;C:\Windows\system32\Wbem
:: Existing tool paths
SET SVN_DIR=C:\Program Files\CollabNet\Subversion Client
SET GIT_DIR=C:\Apps\git\cmd
SET RUBY_DIR=C:\ruby193\bin
SET DEVKIT_DIR=C:\DevKit-4.7.2
SET JAVA_EXE="C:\Program Files\Java\jre7\bin\java.exe"
SET CURL_EXE="C:\gnuwin32\curl\bin\curl.exe"
:: Slave name
SET SLAVE_NAME=win7-x86-alt1
:: Architecture
SET ARCH=x86-windows
:: === DO NOT EDIT BEYOND THIS POINT ===
IF "%1"=="--update" SET UPDATE_JARS=true
:: Slave ROOT
PUSHD %~dp0
SET ROOT=%CD%
SET TOOLS_ROOT=%ROOT%\Tools
POPD
:: Add directories to the PATH
:: Subversion
SET PATH=%SVN_DIR%;%PATH%
FOR /F "usebackq delims=" %%I IN (`svn --version --quiet`) DO @SET SVN_VERSION=%%I
:: Git
SET PATH=%GIT_DIR%;%PATH%
FOR /F "usebackq delims=" %%I IN (`git --version`) DO @SET GIT_VERSION=%%I
:: Ruby
SET PATH=%RUBY_DIR%;%PATH%
FOR /F "usebackq delims=" %%I IN (`ruby --version`) DO @SET RUBY_VERSION=%%I
:: Adding DevKit
CALL "%DEVKIT_DIR%\devkitvars.bat"
:: Knapsack for (ARCH)
SET KNAPSACK_ROOT=%TOOLS_ROOT%\Knapsack\%ARCH%
SET PATH=%KNAPSACK_ROOT%\bin;%PATH%
SET OPENSSL_CONF=%KNAPSACK_ROOT%\ssl\openssl.cnf
SET CPATH=%KNAPSACK_ROOT%\include
SET LIBRARY_PATH=%KNAPSACK_ROOT%\lib
SET KNAPSACK_ROOT=
:: Show environment information
ECHO === Information ===
ECHO.Slave: %SLAVE_NAME%
ECHO.Root: %ROOT%
ECHO.Arch: %ARCH%
ECHO.DevKit: %DEVKIT_DIR%
ECHO.Ruby: %RUBY_VERSION%
ECHO.Git: %GIT_VERSION%
ECHO.Subversion: %SVN_VERSION%
ECHO.PATH %PATH%
:: Starting worker SLAVE_NAME using JNLP
:: (need to CD into Jenkins first)
PUSHD %ROOT%
TITLE (Jenkins) Slave %SLAVE_NAME% [%ARCH%]
ECHO.
ECHO.Starting Jenkins...
IF "%UPDATE_JARS%"=="true" (
ECHO.Deleting all JARs and fetching fresh slave.jar...
DEL /F *.jar
%CURL_EXE% -O http://ci.rubyinstaller.org/jnlpJars/slave.jar
)
%JAVA_EXE% -jar slave.jar -jnlpUrl http://ci.rubyinstaller.org/computer/%SLAVE_NAME%/slave-agent.jnlp
POPD
:EOF
ECHO.Worker stopped.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment