Discussion:
[Libjpeg-turbo-users] Continuous integration is now online
DRC
2016-10-07 20:09:58 UTC
Permalink
We are now spinning continuous official builds from both the master
(stable) and dev (evolving) branches, using Travis and AppVeyor:

http://www.libjpeg-turbo.org/DeveloperInfo/PreReleases

The official Linux builds are spun using a docker image
(dcommander/buildljt:latest) that closely resembles my local build
environment (recipe: https://github.com/libjpeg-turbo/docker.) The
official OS X and Windows builds use a Travis and AppVeyor config that
is also designed to mimic my local build environment. These pre-release
builds should resemble, as closely as possible, the official release
builds, except that the pre-release builds will not be signed using my
code certificate or GPG key. The reason behind this is both practical
and philosophical. Practically, there is no easy way (of which I'm
aware) to sign the builds through a CI system without risking exposure
of the private keys. Philosophically, a signed build means that I am
personally standing behind the integrity of the binaries, and I can only
do that if I built them on my local machines. Thus, official releases
will continue to be spun locally. This ensures that there is no "man in
the middle", i.e. the official releases will never exist on the network
in unsigned form. However, with the exception of signing, the build
procedure used to generate both pre-release and release binaries is
identical and reproducible (see
http://www.libjpeg-turbo.org/DeveloperInfo/BuildInstructions).

Travis is also being used to continuously run ASAN and to validate
building the source with 12-bit and jpeg-8 support. Future enhancements
will likely include regression testing the ARM, MIPS, and PPC code as well.

Special thanks to Matthieu, who created the proof of concept for
integrating libjpeg-turbo with Travis and AppVeyor. My work is based
heavily on his.

Any contributions or suggestions are welcome. I'm new to the CI game,
so I'm learning as I go along. In particular, I am open to adding any
other useful regression tests that you can think of. It would also be
nice at some point to figure out a better means of deploying the
pre-release Linux/OS X binaries than uploading them to our SourceForge
web page. AppVeyor has a convenient mechanism for publishing
"artifacts" with each build, and I am taking advantage of that in order
to provide the Windows pre-release binaries through their site.
Unfortunately, however, doing the same with Travis would require a paid
AWS subscription.

Loading...