Skip to content

CI Server Setup

aharui edited this page Apr 13, 2020 · 17 revisions

Volunteers can run a CI Server to provide nightly builds and help create releases. This is an attempt to document the minimum configuration for a Royale CI Server.

The version numbers of most things don't matter. The Java version might matter in that Royale produces "reproducible binary artifacts" and anyone else trying to reproduce those binaries must use the same version of Java. Using a different version of Java is not guaranteed to result in the same binaries.

The Server must have:

  • Git (currently 2.15)
  • SVN (currently CollabNet's command-line only package, not Subversion Edge, 1.12.2)
  • Java JDK (currently 1.8.0_201)
  • JAVA_TOOL_OPTIONS -Xms384m -Xmx1g (as user environment vars, not system vars because Jenkins has its own JRE that won't like it)
  • Adobe AIR SDK 4.0 (installed such that there is a C:\adobe\air\4.0\AdobeAIRSDK\air-sdk-description.xml).
  • Adobe Flash SDK 11.7 (installed such that there is a C:\adobe\flash\11.7\playerglobal.swc)
  • Adobe Flash Projector Debugger (installed such that there is a C:\adobe\flash\11.7\flashplayerdebugger.exe)
  • Apache Ant 1.9.9 (installed such that there is a C:\apache\apache-ant-1.9.9\bin)
  • Apache Maven 3.6.0 (installed such that there is a C:\apache\apache-maven-3.6.0\bin)
  • Geckodriver 0.24.0 (installed such that there is a C:\geckodriver\geckodriver.exe)
  • Google Closure Library (v20190929.0.0) (installed such that there is a C:\Google\Closure\Library\third_party)
  • FireFox (currently 68)

There is an apacheroyaleci@gmail.com email account for mail from Jenkins CI. The password is on the private@ list.

Before setting up jobs after Jenkins is installed, go to "Manage Jenkins":

  • Check the Plugins configuration to make sure the Extended Email plugin is installed
  • In the Global Security, restrict full access to logged in users (the default) but also allow read-only access to everyone.
  • In the Tools Configuration, set up the paths to the JDK, Git, Ant, and Maven
  • In the System Configuration, set the environment variable GECKODRIVER_HOME to C:\\geckodriver\\geckodriver.exe
  • In the System Configuration, Set the environment variable JAVA_TOOL_OPTIONS to -Dfile.encoding=UTF-8 -Xms384m -Xmx2g

Make sure the VM has outbound ports for 1024 and 843 (This may not be necessary). Jenkins requires inbound ports for 8080 and 43210.

In the filesystem, set up an association with .swf and the flashplayerdebugger.exe in C:\adobe\flash\11.7

Old versions of FlashPlayer playerglobal.swc and standalone debuggers are available here. We've used this archive for the standalone debugger in the past. Use the "debug" folder in the archive.

There is a RoyaleDocs_Staging job that requires Jekyll for Windows (via Ruby Gems).

JGit in the release steps needs: git config --global maven-scm.maildomain apache.org We are currently using maven-scm-provider-jgit with the patch for SCM-932. We are calling it version 1.13.0-SNAPSHOT

Do not use lowercase 'c' in Jenkins config for drive letters (c:\Jenkins). It screws up Maven. Always use uppercase 'C' (C:\Jenkins)

Clone this wiki locally