I just wrote a small part of the documentation, that uses PyPlots.jl
to render a plot (I am actually documenting a PlotRecipe
. What is the easiest way to add the matplotlib
and python
to the documenter Github Action?
I may not be understanding your precise question, but assuming docs/Project.toml
exists I think you could just add PyPlot
as one of the [deps]
. I doubt the workflow script would need changing.
Thanks for the answer. I have PyPlot
in my [deps]
and all is working fine locally. But on my machine here, I have python and matplotlib installed for sure.
On the CI (GitHubActions, i.e. using a .github/workflows/documenter.yml
) this seems to be missing.
PyPlot will install its own python and matplotlib (via Conda.jl) if the environment variable PYTHON
is empty (cf. the PyPlot.jl readme). I think doing that would be the easiest way.
Are you sure that works within a CI? The error message I get is
https://github.com/JuliaManifolds/Manifolds.jl/pull/245/checks?check_run_id=1529534899#step:4:363
but interestingly, while I had hoped I got at least Gtk to work, that also does not work on CI
https://github.com/JuliaManifolds/Manifolds.jl/runs/1529534673?check_suite_focus=true#step:5:376
I’m not sure that it works, I haven’t tried it myself.
However, I don’t see the environment variable PYTHON
being set to ""
anywhere in your workflow. The error message says that the python version at /usr/bin/python3
is used, so I would assume that PYTHON
is set to /usr/bin/python3
.
Thanks for investigating my log and checking. I will try to set it using env
in the YAML then.
Independent of whether I try to set
env:
PYTHON: ""
(See https://github.com/JuliaManifolds/Manifolds.jl/pull/245/checks?check_run_id=1530835584#step:4:348 for the error and https://github.com/JuliaManifolds/Manifolds.jl/pull/245/commits/21c3ba486b95628bc7005dbc9d06749fa4fec100 for how I tried to set it)
in the yaml or
ENV["PYTHON"] = ""
within Julia, the error persists and it’s still looking in the CIs VM in usr/local/bin
for a python
, see https://github.com/JuliaManifolds/Manifolds.jl/pull/245/commits/f5a2a14184349dff014cb2a76c2453558f1d2780 for the commit and https://github.com/JuliaManifolds/Manifolds.jl/pull/245/checks?check_run_id=1530835584#step:4:355 for the error).
So where actually do I have to set that environment variable? Or do I have to add python to the action? If so, how?
You have to set the environment variable at the step where the package is built. In your documenter.yml
, that is one step later (in julia-actions/julia-docdeploy@v1
instead of julia-actions/setup-julia@latest
).
Setting the environment variable in the make.jl
file is also not helpful, the package is already built when this is executed.
Adding it to the docdeploy
stage seems to have worked, since the images Sphere · Manifolds.jl are available in the PR. Thanks for the help. I think that way I can now also try to fix the tests and GKS accordingly.
Thanks!