LuxDL / DocumenterVitepress.jl

Documentation with Documenter.jl and VitePress
https://luxdl.github.io/DocumenterVitepress.jl/
MIT License
62 stars 9 forks source link

How to deploy on GitLab #145

Closed Moelf closed 1 month ago

asinghvi17 commented 1 month ago

Does it not just work?

Moelf commented 1 month ago

It kinda doesn't

asinghvi17 commented 1 month ago

Is there a specific error or some gitlab log you could point me to? There are a couple of potential failure points I can see but I'm not familiar with the Gitlab deployment system these days.

Moelf commented 1 month ago

the deployed page is 404 on GitLab.

I *think it's because we have build/final_site/index.html instead of build/index.html?

trying this fix:

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b43a792..8e0da6e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -43,7 +43,7 @@ pages:
   script:
     - julia --project=docs -e 'import Pkg; Pkg.develop(;path="./"); Pkg.instantiate()'
     - julia --project=docs docs/make.jl
-    - mv docs/build public  # move to the directory picked up by Gitlab pages
+    - mv docs/build/final_site public  # move to the directory picked up by Gitlab pages
   artifacts:
     paths:
       - public
Moelf commented 1 month ago

https://bjettla-jl.docs.cern.ch/

That only semi-worked, any guess?

asinghvi17 commented 1 month ago

I guess that vanilla Documenter doesn't deploy correctly to Gitlab either.

We have a kwarg clean_md_output for MarkdownVitepress which moves the HTML site to docs/build, but you would have to toggle that on and off for local development.

I can't get access there, looks like I need some form of account or privileges?

Moelf commented 1 month ago

Yeah the CERN gitlab instance is closed, I can invite you to the GitHub mirror if you want.

I will do more investigation soon

Moelf commented 1 month ago

Btw vanilla documenter.jl worked on gitlab just fine. (Before the diff)

asinghvi17 commented 1 month ago

Could you send a screenshot of what the website looks like to you? Would be nice to look at the Github mirror as well.

Edit: by before the diff, you mean that you were still running mv docs/build public, right?

Moelf commented 1 month ago

ohhhhh sorry I forgot you can't even access the website ugh, here: image

I guess because: image

yeah, in the vanilla Documenter.jl case, moving the docs/build and pointing GitLab Pages build to public worked just fine. Basically: https://gitlab.com/ExpandingMan/Parquet2.jl/-/blob/master/.gitlab-ci.yml?ref_type=heads#L24-29

Moelf commented 1 month ago

hm, I guess I don't know why those js files or what not are not accessible. This is the dump from GitLab pipeline artifact:

/public> tree
.
├── 404.html
├── assets
│   ├── app.D4LdPWg3.js
│   ├── chunks
│   │   ├── framework.DImIk300.js
│   │   ├── @localSearchIndexroot.Bqfjzs4i.js
│   │   ├── theme.C5ukZYie.js
│   │   └── VPLocalSearchBox.BDC9-P7E.js
│   ├── data_schema.md.dUSeLSYC.js
│   ├── data_schema.md.dUSeLSYC.lean.js
│   ├── index.md.CXzbBlpN.js
│   ├── index.md.CXzbBlpN.lean.js
│   ├── install.md.LtQZTklO.js
│   ├── install.md.LtQZTklO.lean.js
│   ├── inter-italic-cyrillic.By2_1cv3.woff2
│   ├── inter-italic-cyrillic-ext.r48I6akx.woff2
│   ├── inter-italic-greek.DJ8dCoTZ.woff2
│   ├── inter-italic-greek-ext.1u6EdAuj.woff2
│   ├── inter-italic-latin.C2AdPX0b.woff2
│   ├── inter-italic-latin-ext.CN1xVJS-.woff2
│   ├── inter-italic-vietnamese.BSbpV94h.woff2
│   ├── internalapis.md.zd4z5DxV.js
│   ├── internalapis.md.zd4z5DxV.lean.js
│   ├── inter-roman-cyrillic.C5lxZ8CY.woff2
│   ├── inter-roman-cyrillic-ext.BBPuwvHQ.woff2
│   ├── inter-roman-greek.BBVDIX6e.woff2
│   ├── inter-roman-greek-ext.CqjqNYQ-.woff2
│   ├── inter-roman-latin.Di8DUHzh.woff2
│   ├── inter-roman-latin-ext.4ZJIpNVo.woff2
│   ├── inter-roman-vietnamese.BjW4sHH5.woff2
│   └── style.BCHh3-pm.css
├── data_schema.html
├── hashmap.json
├── index.html
├── install.html
├── internalapis.html
└── logo.png
asinghvi17 commented 1 month ago

This looks like a path misconfiguration. What are you passing to MarkdownVitepress? Might be that the deploy_url parameter is misconfigured.

Looking at the website paths - I think the root path for the documentation is supposed to be bjletta-jl.docs.cern.ch, but DV is outputting bjletta-jl.docs.cern.ch/BjetTLA.jl which is probably not what we want.

Moelf commented 1 month ago

oh yeah probably, I don't have deploy_url right now:

repopath = if haskey(ENV, "GITHUB_ACTION")
    "github.com/Moelf/BjetTLA.jl"
else
    "gitlab.cern.ch/tla-atlas-run3/BjetTLA.jl"
end

makedocs(;
         modules=[BjetTLA],
         format=DocumenterVitepress.MarkdownVitepress(repo = repopath, devbranch = "main", devurl = "dev"),

what should it be in this case? maybe bjettla-jl.docs.cern.ch?

asinghvi17 commented 1 month ago

Yes

Moelf commented 1 month ago

that worked! thanks. So I think basically for DV.jl, you really got set deploy_url correctly, where vanilla Documenter.jl is more loose about it.

Moelf commented 1 month ago

huh, now github doesn't work https://moelf.github.io/BjetTLA.jl/dev/

I think:

deploy_url = if haskey(ENV, "GITHUB_ACTION")
    "moelf.github.io/BjetTLA.jl"
else
    "bjettla-jl.docs.cern.ch"
end

need to change to "moelf.github.io/BjetTLA.jl/dev", but I feel like that's a bug?

asinghvi17 commented 1 month ago

Huh, that deploy url seems right to me...how about this:

deploy_url = if haskey(ENV, "GITHUB_ACTION")
    nothing
else
    "bjettla-jl.docs.cern.ch"
end
asinghvi17 commented 1 month ago

Yeah looking at the links the deploy URL is horribly misconfigured on the first one. Handling that in DV could use quite a bit of improvement, but for now the default ought to work.