I need to build packages of our software on Linux and Windows. On Linux
we build rpms and on Windows we build msi installers. The tricky bit is
that we would like to include the msi-installers in a windows-clients
rpm for distribution purposes.
What we have done previously is to have two completely separate build
jobs, both of which are triggered by a commit. Both jobs copy their
artifacts to a file server (rpm and msi packages). The Linux job would
get the msi packages from this file server. The problem with this
approach is that depending on timing the linux package build can get an
msi that is one generation old.
If we use a multi-configuration job to build the linux and windows
packages we can be sure that we are getting the same version. The
problem now is that the Linux build needs to wait for the windows build
to conclude and obtain the artefacts.
I hope someone here would have a good idea how to do this. Below I will
outline, my best idea, with additional questions.
My best idea is to use wget/curl from the linux script to poll the
status of the win32 job every 30 seconds or so and when it is done grab
the published artifacts.
The win32 BUILD_URL should be obtainable by replacing arch=linux with
arch=win32 in the linux $BUILD_URL. Next I need to query the status of a
build. How do I do that? Is there a REST url, a la $BUILD_URL/status
that will give me back a status code or something (BUILDING, OK, FAILED)?
Once I have the status I can retrieve the artifacts, again using
wget/curl with a constructed url based on $BUILD_URL.
Looking forward to your insightful help.
Thanks,
Thomas