Collecting artefacts

One of the projects we build with teamserver has binaries that need to be
built on different platforms. It's the same C++ code that gets compiled.

We have solved this by having different build configurations with different
requirements, typically environment variables like MSVS60_HOME and
GCC40_HOME. This works fine.

The next step is to take the binaries (artefacts) generated by these build
configurations and use those to build an install kit.

And here's the big question: How can we use the artefacts of one build as
input to the next build? And how can we make sure that the builds that make
up the parts run before the build that takes the parts and makes the kit?

/Mikael


2 comments
Comment actions Permalink

Hello Mikael!

Mikael Karlsson wrote:

One of the projects we build with teamserver has binaries that need to be
built on different platforms. It's the same C++ code that gets compiled.

We have solved this by having different build configurations with different
requirements, typically environment variables like MSVS60_HOME and
GCC40_HOME. This works fine.


Glad to hear it :)


The next step is to take the binaries (artefacts) generated by these build
configurations and use those to build an install kit.

And here's the big question: How can we use the artefacts of one build as
input to the next build? And how can we make sure that the builds that make
up the parts run before the build that takes the parts and makes the kit?


Unfortunately, dependent build configurations are planned only for release 1.5.

You can use a workaround like setting up a manual checkout of your project
into the build agent (set checkout on server = false + provide a build script to
checkout project from VCS) and commiting build artefacts from the build 1 into
VCS. Not nice but should work until 1.5 is released.

Other variant - setup time-based builds when build1 runs before build2 and
publishes its artifacts on some shared network disk.

Hope this helps,
KIR


--
Kirill Maximov
Software Developer
JetBrains, Inc.
http://www.jetbrains.com
"Develop with pleasure!"

0
Comment actions Permalink

"Kirill Maximov (JetBrains)" wrote:
>> And here's the big question: How can we use the artefacts of one build as
>> input to the next build?
>

You can use a workaround like setting up a manual checkout of your
project into the build agent (set checkout on server = false + provide a
build script to checkout project from VCS) and commiting build artefacts
from the build 1 into VCS. Not nice but should work until 1.5 is released.


We already figured out something like that. We have a separate repository
where we commit build artefacts. To that, we add a separate project with
manually triggered builds that collects the artefacts and builds the install
kit.

We put the artefacts in a separate repository (actually another folder) to
avoid creating an infinite loop where a build commits stuff and this commit
triggers the build to run again. It would be nice if teamserver had the
option
to commit artefacts. Perhaps not all artefacts but some would be nice.

The install kit builder is manually triggered since we have a hard time
making
sure that all different components have been built before building a kit. We
obviously don't want to build a kit when some components have been
recompiled
and some haven't.

/Mikael


0

Please sign in to leave a comment.