Search code examples
unicodedoxygengraphvizgitlab-ci

Gitlab Pages + Doxygen + Graphviz creates graphs with corrupted characters


I'm using Gitlab Pages to host a Doxygen-created API for my project. I also leverage the graphviz project to create dependency graphs. I use the CI script to install the packages and build the documentation:

pages:
  stage: build
  image: alpine
  script:
    - apk update && apk add doxygen
    - apk add graphviz
    - doxygen doxy/dox_config
    - mv docs/html/ public/
  artifacts:
    paths:
      - public
  only:
    - master
  dependencies: []

The CI script runs without any errors other than a Doxygen error complaining it can't find LaTeX and dvips, neither of which should affect the graphviz pictures. My graphs look like the following:

Graphviz Problems

I'm not really sure what the problem is or how to fix it. Why are all the characters wrong?


Solution

  • It turns out the issue is with the Docker image used. Alpine doesn't include the correct fonts, but Debian has all the prerequisites. While there is almost definitely a way to install the fonts with Alpine, I just switched to the Debian docker image. Here is a working YML script:

    pages:
      stage: build
      image: ubuntu:trusty
      script:
        - export DEBIAN_FRONTEND=noninteractive
        - apt-get -yq update
        - apt-get -yq install graphviz
        - apt-get -yq install doxygen
        - doxygen doxy/dox_config
        - mv docs/html/ public/
      artifacts:
        paths:
          - public