This repository contains the Dockerfiles to build the images used for continuous integration of LibrePCB.
The built images are hosted at Docker Hub.
Based on Debian 8 (Jessie), containing Qt from the official Debian package repository. This image is intended to check if LibrePCB compiles on a standard Debian 8.
Based on Ubuntu 14.04, containing Qt from the official Ubuntu package repository. This image is intended to check if LibrePCB compiles on a standard Ubuntu 14.04.
Based on Ubuntu 16.04, containing Qt from the official Ubuntu package repository. This image is intended to check if LibrePCB compiles on a standard Ubuntu 16.04.
Based on Ubuntu 16.04, containing Qt 5.12.3 from
this PPA. This image is intended for
deployment of official binary releases of LibrePCB (installer and AppImage),
which should be linked against an old version of glibc (for maximum
compatibility) but still using a recent Qt version (to get the latest features
of Qt).
In addition, this image contains
linuxdeployqt and the
Qt Installer Framework to build the
official binary releases.
Same purpose as ubuntu-16.04-qt5.12.3, but with Qt 5.14.2.
Same purpose as ubuntu-16.04-qt5.12.3, but with Qt 5.15.2.
Based on Ubuntu 18.04, containing Qt from the official Ubuntu package repository. This image is intended to check if LibrePCB compiles on a standard Ubuntu 18.04.
Based on Ubuntu 19.04, containing Qt from the official Ubuntu package repository. This image is intended to check if LibrePCB compiles on a standard Ubuntu 19.04.
In addition, this image contains GCC 9 to check if LibrePCB can be built with a recent compiler.
Based on Ubuntu 20.04, containing Qt from the official Ubuntu package repository. This image is intended to check if LibrePCB compiles on a standard Ubuntu 20.04.
In addition, this image contains necessary tools for dynamic linking of LibrePCB (pkg-config, libdxflib, libmuparser, libquazip5, libpolyclipping, googletest).
Based on Windows Server Core LTSC2019 with Qt5.15.0 and MinGW 8.1 32-bit. This image is intended for deployment of official binary releases of LibrePCB for Windows.
Same purpose as windowsservercore-ltsc2019-qt5.15.0-32bit, but with Qt 5.15.2.
An image providing all the web tools we need for
librepcb-doc and
librepcb-website:
Important: On Linux, use the helper script ./build.sh since it makes the
procedure less error prone!
- Add/modify the Dockerfiles, update this README and commit all changes.
- Run
./build.sh <image-name> <version> --pushto build and push the image. Use the next unused version number, i.e. the previous image version plus one. Use just a single number as version identifier, e.g.1,2,3. Semantic versioning is not needed since CI always links to one specific version. - Test the new image by pushing the LibrePCB repository to trigger the CI.
- If everything was successful, merge the changes into
master. - On the
masterbranch (merge commit checked out!), create the corresponding Git tag by running./build.sh <image-name> <version> --tag(can also be combined with--pushto push the image again).
To compile LibrePCB locally using these images, run the container like this:
docker run -it --rm \
--user "$(id -u):$(id -g)" \
-v "$(pwd):/code" -w "/code" \
-e OS=linux -e ARCH=x86_64 \
librepcb/librepcb-dev:<tag>The content in this repository is published under the GNU GPLv3 license.