6 Build Server Virtual Machine
Scott Duensing edited this page 2022-09-28 23:05:28 +00:00

The build server virtual machine is managed by a single script named buildVm.sh that is in the joeylib/scripts folder of the JoeyLib repository. It is intended to be run on a freshly installed Ubuntu Server 20.04.x system with sshd installed. (Yes, I know 20.04.x isn't the latest LTS release.)

It supports:

./buildVm.sh add USER PASS 
./buildVm.sh build DIST SRC 
./buildVm.sh del USER 
./buildVm.sh install GGUSER GGPASS 
./buildVm.sh rebuild 
./buildVm.sh server DIST LOG
  • Add a new user.
  • Build some code manually.
  • Delete a user.
  • Install everything and set up the VM.
  • Rebuild JoeyLib after changes.
  • Run the build service.

DIST is the full path to the dist/ folder created in your home directory during install. LOG is the file where you want builds to be logged.

GGUSER and GGPASS are your Golden Gate GitLab login. Do NOT* include the @ on your username!

To perform install you also need the following files in your home directory along with buildVm.sh:

'Golden Gate.msi' 
id_rsa 
id_rsa.pub 
'Opus ][ The Software.iso' 
Xcode_12.5.1.xip 
Xcode_9.4.1.xip

id_rsa and id_rsa.pub are your keypair for the Golden Gate repository.

The install will create:

MacOSX10.13.sdk.tar.xz 
MacOSX11.3.sdk.tar.xz

Back these up and use them instead of the XIP files to save about a day of build time next time you run install:slight_smile:

Do not run any buildVm.sh commands as sudo except server!

After install or rebuild there will be a dist.tar.bz2 in the home directory with the latest debug and release builds of JoeyLib that can be used to write software for JoeyLib using modern machines.


To perform a build, first create a user. Do not use the same account that you used when installing the VM.

./buildVm.sh add User PaSsWoRd

Then SFTP onto the server using this new user account. You will see a build folder. In that folder, upload the code you wish to build (C and H files along with any data needed by your game).

After uploading the code, upload a project file explaining the build. Project files must be named build.start and contain the following:

  • Line 1: Short Name of Project - 15 characters or less, 8 is ideal. Numbers and letters only. Start with a letter.
  • Line 2-x: Platforms to build. One of iigs, linux32, linux64, macosx32, macosx64, macosa64, win32, or win64.

The following example would build Warehouse for all platforms:

WHouse
iigs
linux32
linux64
macosx32
macosx64
macosa64
win32
win64

If you just want the IIgs and Windows builds, use:

WHouse
iigs
win32
win64

Once you have this file, upload it after all the game files to start the build. Once the build is complete, the server will ERASE your source and replace it with a tarball that is the result of your build.