fltk/.gitlab-ci.yml
Albrecht Schlosser 7d7784d140 GitLab CI/CD: generate pdf documentation
Remove build artifacts from normal builds (libs and executables).
  These were never meant to be provided but forgotten to remove
  after tests.

Try to build fltk.pdf (may be removed later)

Store fltk.pdf in 'public' folder to be available online in docs
  and downloadable as "artifact"
2022-08-09 21:41:31 +02:00

96 lines
2.4 KiB
YAML

# 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
# 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
# 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 doxygen-latex
script:
- date
- make clean
- cd documentation
- date
- make && make html
- date
- make pdf
- date
- cd ..
- mkdir -p public/
- mv documentation/html/* public/
- mv documentation/fltk.pdf public/
- date
artifacts:
paths:
- public