GLMakie with github CI

Hi new Julia user here, hoping this is the right community to help answer my question.

I’m having issues with GLMakie and my github CI yaml. I’m aware there’s a bit of discussion about this elsewhere online, but haven’t been able to get the existing solutions to work for me. I’ve copied my CI.yml at the bottom.

When I push it up to gh, I get

...
✗ GLMakie
  344 dependencies successfully precompiled in 256 seconds
  2 dependencies errored. To see a full report either run `import Pkg; Pkg.precompile()` or load the packages
Run # The Julia command that will be executed
┌ Warning:     OpenGL/GLFW wasn't loaded correctly or couldn't be initialized.
│     This likely means, you're on a headless server without having OpenGL support setup correctly.
│     Have a look at the troubleshooting section in the readme:
│     https://github.com/MakieOrg/Makie.jl/tree/master/GLMakie#troubleshooting-opengl.
└ @ GLMakie ~/.julia/packages/GLMakie/F1fQC/src/gl_backend.jl:4
ERROR: LoadError: InitError: Exception[GLFW.GLFWError(GLFW.PLATFORM_ERROR, "X11: The DISPLAY environment variable is missing"), ErrorException("glfwInit failed")]

I’ve followed the suggested link and tried to incorporate the changes there, but haven’t been able to make it work.
I’ve tried adding DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' in front of any julia calls, as well as sudo apt-get update && sudo apt-get install -y xorg-dev mesa-utils xvfb libgl1 freeglut3-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-d ev libxext-dev xsettingsd x11-xserver-utils before uses commands that run julia-actions. I’m also new to github CI, so that could be part of the problem.

My CI.yml:

name: CI
 on:
   push:
     branches:
       - main
     tags: ['*']
   pull_request:
 concurrency:
   # Skip intermediate builds: always.
   # Cancel intermediate builds: only if it is a pull request build.
   group: ${{ github.workflow }}-${{ github.ref }}
   cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
 jobs:
   docs:
     name: Documentation
     runs-on: ubuntu-latest
     permissions:
       contents: write
       statuses: write
     steps:
       - uses: actions/checkout@v3
       - uses: julia-actions/setup-julia@v1
         with:
           version: '1' 
       - run: sudo apt-get update && sudo apt-get install -y xorg-dev mesa-utils xvfb libgl1 freeglut3-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-d
       - name: Configure doc environment
         run: |
           DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --color=yes --project=docs/ -e '
             using Pkg
             Pkg.develop(PackageSpec(path=pwd()))
             Pkg.instantiate()' && echo "TESTS_SUCCESSFUL=true" >> $GITHUB_ENV
       - uses: julia-actions/julia-buildpkg@v1
       - name: Install Julia dependencies
         shell: julia --project=docs/ {0} 
         run: |
           DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --color=yes --project=docs/ -e '
           using Pkg;
           # dev mono repo versions
           pkg"dev . ./MakieCore ./GLMakie"' # ./ReferenceTests"
       - uses: julia-actions/julia-docdeploy@v1
         env:
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
       - name: Run Doctest
         run: |
           DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e '
             using Documenter: DocMeta, doctest
             using Jems
             DocMeta.setdocmeta!(Jems, :DocTestSetup, :(using Jems); recursive=true)
             doctest(Jems)' && echo "TESTS_SUCCESSFUL=true" >> $GITHUB_ENV

Does anyone know what I’m missing?

1 Like

Me too! I was about to post something similar. I have a Documenter.jl script that does some 3D rendering that don’t look quite right in CairoMakie or WGLMakie. I’d love to use GLMakie, but so far it is not able to pass that error.

1 Like

I have the same issue. Does anyone have any solutions? Or are people moving to Cairo?

The glmakie CI runs on GitHub ci without problems so it should be just a matter of correctly taking over those steps from there.

Thanks very much, @sdanisch, and I’m sorry I took so long responding. Your idea worked out fine. :grinning: Best wishes.