* Add missing xcb-util-* packages. Qt's libqxcb.so seems to require them in the newer Qt version * Adjust breakpad install prefix to match CMake change * Add build script for Olive for quick testing * .n in CI image actually stands for image revision * skipping the CI is now supported natively by GitHub Actions
Docker Images
Olive uses Docker containers for continuous integration on Linux. No Docker images are involved for the Windows and macOS CI.
Overview
ci-common is the shared build image with GCC, Clang and packages that are
needed by most dependent images. It is used to compile Olive's dependencies
in a controlled environment. The final CI image ci-olive is assembled from
images maintained by the Olive team as well as from
aswf-docker.
Dependency hierarchy:
ci-commonci-otio,ci-crashpad,ci-ffmpeg,ci-ocioci-olive
Usage
Pull images from Docker Hub:
docker pull olivevideoeditor/ci-common:2
docker pull olivevideoeditor/ci-package-otio
docker pull olivevideoeditor/ci-package-crashpad
docker pull olivevideoeditor/ci-package-ffmpeg:4.2.4
docker pull olivevideoeditor/ci-package-ocio:2021-2.0.0
docker pull olivevideoeditor/ci-olive:2021.3
Use ci-olive image as local build container, by mounting working copy at
~/olive into guest system at /opt/olive/olive:
docker run --rm -it -v ~/olive:/opt/olive/olive olivevideoeditor/ci-olive:2021.3
mkdir build
cd build
cmake .. -G Ninja
cmake --build .
Rebuild all images locally:
cd docker
docker build -t olivevideoeditor/ci-common:2 -f ci-common/Dockerfile .
docker build -t olivevideoeditor/ci-package-otio -f ci-otio/Dockerfile .
docker build -t olivevideoeditor/ci-package-crashpad -f ci-crashpad/Dockerfile .
docker build -t olivevideoeditor/ci-package-ffmpeg:4.2.4 -f ci-ffmpeg/Dockerfile .
docker build -t olivevideoeditor/ci-package-ocio:2021-2.0.0 -f ci-ocio/Dockerfile .
docker build -t olivevideoeditor/ci-olive:2021.3 -f ci-olive/Dockerfile .
Note that 2021 in ci-olive:2021.3 stands for the
VFX Reference Platform calendar year and 3 for the
build image revision (should be incremented each time a new image is published).
Publish images:
docker push olivevideoeditor/ci-common:2
docker push olivevideoeditor/ci-package-otio
docker push olivevideoeditor/ci-package-crashpad
docker push olivevideoeditor/ci-package-ffmpeg:4.2.4
docker push olivevideoeditor/ci-package-ocio:2021-2.0.0
docker push olivevideoeditor/ci-olive:2021.3