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
, orwin64
.
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.