# This file controls GitLab CI (Continuous Integration) for FLTK. # # It serves two purposes: # # (1) Continuously building FLTK with one or more build systems. # (2) Generating current HTML documentation and putting it online. # # The documentation will be viewable at: # # https://fltk.gitlab.io/fltk/ # # Details of this script: # # use the official gcc image, based on debian # can use versions as well, like gcc:5.2 # see https://hub.docker.com/_/gcc/ image: gcc stages: - build - deploy # Build with autoconf/make (including Pango and Cairo) # Disabled for regular builds after commits to save build time: "only schedules" # Note: Build time limits on "GitLab Free" effective Oct 2020: 400 minutes per month build-autotools: stage: build only: - schedules # install the necessary build tools before_script: - apt update && apt -y install make autoconf man - apt -y install freeglut3-dev libfontconfig-dev libxft-dev libglew-dev - apt -y install libxcursor-dev libxinerama-dev libasound2-dev - apt -y install libpango1.0-dev libcairo2-dev script: - make clean - ./configure --enable-pango --enable-cairo - time make -j3 - cd examples && time make artifacts: paths: - lib/ - test/cairo_test - test/glpuzzle - test/unittests - test/fltk-versions # Build with CMake and Ninja (with pango, cairo, building examples) build-cmake: stage: build only: - master # install the necessary build tools before_script: - date - apt update && apt -y install cmake ninja-build - apt -y install freeglut3-dev libfontconfig-dev libxft-dev libglew-dev - apt -y install libxcursor-dev libxinerama-dev libasound2-dev - apt -y install libpango1.0-dev libcairo2-dev script: - date - gcc --version - mkdir build && cd build - cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug -DFLTK_BUILD_EXAMPLES=ON -DOPTION_USE_PANGO=ON -DOPTION_CAIRO=ON .. - date - time ninja - date artifacts: paths: - build/lib/ - build/bin/ # Generate and install HTML documentation pages: stage: deploy only: - master # run this job (documentation) independent of the build jobs (empty "needs" clause) needs: [] # install the necessary build tools before_script: - date - apt update && apt -y install make autoconf man doxygen script: - date - make clean - cd documentation - date - make && make html - date - cd .. - mkdir -p public/ - mv documentation/html/* public/ - date artifacts: paths: - public