There are currently two Continuous Integration (CI) Servers used by Apache Flex.  One is hosted by Apache at builds.apache.org.  It runs our Maven builds.

The other CI server is an Azure VM currently paid for by Alex Harui.  It is not as powerful as the builds.apache.org server, but not having to share a server with a bunch of other projects gives us more control over what we can run on the server.  In the early days of Apache Flex, builds.apache.org failed to meet our needs because we could not get administrator access to make changes at the file system level and install and control things like AIR and Flash runtimes.

The server runs a Jenkins instance with a slave.  The URL to the Jenkins dashboard is http://apacheflexbuild.cloudapp.net:8080.  You should see all of the builds we run.

The Azure VM is running Windows.  Occasionally, Windows will force an update and restart the server.  When that happens, Jenkins will restart, but the Jenkins "slave" that actually runs the builds must be manually started.  In the Jenkins dashboard, if you see that the "Build Queue" is long, see what the "Build Executor Status" says for "flex-sdk-slave2".  If there is a job running and the progress bar is red, then the job is stuck.  PMC members should be able to use the login and password that has been posted to the archives for the private@flex.apache.org mailing list and login and kill the job.  Search the archives for "Jenkins Credentials".  If the job is MD5Checker, also see these instructions: 

https://cwiki.apache.org/confluence/display/FLEX/MD5Checker+Instruction+Manual

If the Build Executor Status says that flex-sdk-slave2 is offline, then the slave needs to be manually started.  (flex-sdk-slave3 is currently not used and will say it is offline and that is ok).  To start the slave, you will need to use Microsoft Remote Desktop to access the VM and start the slave.

To use Microsoft Remote Desktop, install it on your Mac or Windows machine.  If you are using a Mac, make sure you get a recent version and older version were really buggy.  You will also be on a network that allows RDP.  Some corporate networks block it.  Run it and connect to:

apacheflexbuild.cloudapp.net:50168

Login and password are also available in the archives for private@flex.apache.org.  You will next see a warning dialog about verifying the certificate.  Just hit continue to get past that.  Eventually, you will see a Windows classic desktop.  Do not change the Windows theme as it will affect tests that expect certain screen dimensions.  If you see a popup about "Interactive Services Detection", close all of those dialogs.

Near the upper right of the desktop should be an icon labelled "slave-agent-1.jnlp".  Sometimes it just looks like "slave-agent…".  Double-click to open it.  Be patient as it can take a while to open.  Eventually, you should see a dialog about whether it is ok to run this app.  Hit whatever button will approve it.  Eventually, you should see a small window that says "Jenkins Slave Agent" and in the window it should say "connected".  Then in the Jenkins dashboard, the slave agent should no longer say it is offline and builds should start running again.

If you think a restart will help, feel free to restart the Azure VM, but be careful to choose "Restart" and not "Shut Down".  If you choose "Shut Down", the VM will stop and Alex will have to use his Azure account to get the server going again.


  • No labels