[Libjpeg-turbo-devel] Continuous integration is now online
SIMD-accelerated libjpeg-compatible JPEG codec library
Brought to you by:
dcommander
|
From: DRC <dco...@us...> - 2016-10-07 20:10:06
|
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. |