I am able to generate the documentation locally, but when I try to do so on Github I get the following errors during execution of make.jl:
[ Info: SetupBuildDirectory: setting up build directory.
[ Info: Doctest: running doctests.
[ Info: ExpandTemplates: expanding markdown templates.
qt.qpa.xcb: could not connect to display
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: linuxfb, minimal, offscreen, vnc, xcb.
Aborted (core dumped)
connect: Connection refused
GKS: can't connect to GKS socket application
The package is PSSFSS.jl and the documentation build log is here
I thought it was allowed to include plots in the online generated documentation. Is that correct? If that’s not it, then I could sure use some help debugging this. Thanks in advance.
I see you’re using Plots.jl, and “GKS” sounds like the GR backend. In that case, set the magic environmental variable
ENV["GKSwstype"] = "100"
which tells it to operate in “headless” mode where it doesn’t expect an active display connected. (AFAIK this is undocumented but it’s super useful!).
@PeterSimon and @ericphanson
I have the same problem as @PeterSimon initially described.
So, which file should I add the line ENV["GKSwstype"] = "100" ? Should it be in docs/make.jl?
Thanks a lot in advance!
@PeterSimon, thanks. I followed exactly what you said, and checked your CI.yml in PSSFSS.jl. Yet, I got the same error as before:
Run julia --project=docs/ docs/make.jl
julia --project=docs/ docs/make.jl
shell: /usr/bin/bash -e {0}
env:
GITHUB_TOKEN: ***
DOCUMENTER_KEY:
[ Info: SetupBuildDirectory: setting up build directory.
[ Info: Doctest: running doctests.
[ Info: ExpandTemplates: expanding markdown templates.
qt.qpa.xcb: could not connect to display
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: linuxfb, minimal, offscreen, vnc, xcb.
Aborted (core dumped)
connect: Connection refused
GKS: can't connect to GKS socket application
...
You don’t explicitly show that you included the GKSwstype environment variable. Could you provide a link to your Github CI.yml file so we can look it over?
Your CI.yml file looks OK to me (though I am far from an expert on this).
When I look at your log files, I see that the GKSwtype environment variable is not set during your documentation run. (You apparently copied a portion of the log file in your last post.) I am by no means proficient at this stuff, but I do notice that your listing shows
env:
GITHUB_TOKEN: ***
DOCUMENTER_KEY:
There are no asterisks after DOCUMENTER_KEY as there are after GITHUB_TOKEN. In the log file for my project, there are asterisks after both of these. I am totally speculating here, but perhaps you didn’t set up DOCUMENTER_KEY and maybe this caused the setting of the environment variables to be terminated before reaching GKSwstype setting. If this isn’t it, then perhaps someone more expert on these matters can help you.
Thanks a lot! After all, I forgot that I have another yml file called Documenter.yml under .github/workflow/, which deals with everything related to the docs. I added that magic line under the env item, it worked!