Building XComps with Github actions
Bastiaan Olij
bastiaan at muxworks.com.au
Mon Mar 14 00:07:19 UTC 2022
Hi All,
I've been working on creating CI/CD implementations of some of my xcomps
including those I host publicly on Github. It may be of interest to some
others to see how I've approached this.
It fully compiles the xcomps for Windows and macOS on every push
request, both so you can test if it compiles before merging into master
and to allow you to download the compiled xcomps and test them.
I've also added logic so you can tag a release and it will put together
a nice downloadable zip file with both Windows and macOS builds.
Right now it only builds with the latest Studio 10.2 SDK but I guess the
build system could be enhanced to build against various different
versions fairly easily, well anything going back to Studio 8.x as the
project files need to be different for older versions.
It does not code sign the xcomps. I'm sure it's possible to organise
that in some way, shape or form but since we code sign everything on
building our entire application
The most bare bones example I have is this one:
https://github.com/BastiaanOlij/omnis.xcomp.bgwidgets
Which is very similar to the generic example that comes with the SDK but
with a few more classes build in.
Note that the Omnis SDK is installed in thirdparty/omnis.sdk which is
different then how Omnis organises their SDK for their examples and the
project files have been altered. Also the SDK is not embedded in the
repository but the scripts download and extract the SDK from the Omnis
developer FTP. If you want to build the project locally you'll have to
put the Mac and Windows SDK inside of that folder
The CI/CD script itself can be found here:
https://github.com/BastiaanOlij/omnis.xcomp.bgwidgets/blob/master/.github/workflows/build_on_push.yml
And finally, this is what a release looks like:
https://github.com/BastiaanOlij/omnis.xcomp.bgwidgets/releases
--
Kindest Regards,
Bastiaan Olij
bastiaan at muxworks.com.au
+61-432144833
More information about the omnisdev-en
mailing list