Literate.jl, Documenter.jl, GLMakie.jl and GitHub

Each run specifies a shell command, if you want to run that shell command through xvfb-run then you need to prefix it with that. If you take a look at your yaml:

- name: Install dependencies
  run: julia --project=docs/ -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()'
- name: Build and deploy docs
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 
  run: >
    cd docs;
    DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24'
    julia --color=yes make.jl

then the Build and deploy docs step runs two separate commands. The > means all following lines are concatenated into one big line. So you have cd docs and then the command DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --color=yes make.jl which sets DISPLAY and then uses xvfb-run to run julia. Those are not separate commands even though they appear on two different lines.

But in the previous step Install dependencies, you have run: julia --project=docs/ -e 'using Pkg... so this runs julia without the xvfb-run wrapper. When this commands loads GLMakie in precompilation, it fails. So change that one to DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=docs/ ... as well.

The Upload site as artifact step is unrelated to these problems.

1 Like