Deployment strategy for fabulous.dev #1
Replies: 0 comments 3 replies
-
I think we can even find a way to include documentation for 3rd party extensions such as Maps. |
Beta Was this translation helpful? Give feedback.
-
Actually instead of pushing on the repos docs.* / api.* all the markdowns, we could just update a txt file with the commit hash of the corresponding repo. fsharp-mobile/docs.fabulous.dev/commit.txt (branch
Upon update, GitHub Actions would then pull the repo of Fabulous.XamarinForms for this specific commit getting all the markdown files without duplicating them. |
Beta Was this translation helpful? Give feedback.
-
This structure looks good to me.
Yeah that would be easier enough to manage :) |
Beta Was this translation helpful? Give feedback.
-
After https://github.com/fsprojects/Fabulous is moved to fsharp-mobile, it would be good to split it in 3 different repositories:
This change will beg the question of how do we deal with the documentation website at https://fabulous.dev
Right now, this website is actually 2 individual parts hosted on GitHub Pages: fabulous.dev which is the "marketing" landing page and docs.fabulous.dev for all the documentation.
fabulous.dev is built from the repo fsharp-mobile/fabulousfx.github.io
docs.fabulous.dev is built from the repo fsprojects/Fabulous itself, but the compilation is a little bit more advanced:
gh-pages
is triggereddocs
branchdocs
folder on themain
branch and combine it with the website templategh-pages
)This was working because it is a single repository.
I've been thinking how to deploy the same website structure (each repo has its own markdowns) but make it work across repositories given a specific domain can only be hosted on a single repo.
I came up with this idea:
fabulous.dev (main landing page promoting both Fabulous and variants eg Fab.XF, Fab.Maui, etc)
==> fabulous.dev/xamarin.forms (landing page specific to Fabulous.XamarinForms)
==> fabulous.dev/maui
This would be hosted on a separate repo like today. Say
fsharp-mobile/fabulous.dev
.Then we would have the documentation:
docs.fabulous.dev (landing page for the documentation)
==> docs.fabulous.dev/fabulous (documentation for Fabulous itself)
==> docs.fabulous.dev/xamarin.forms (landing page for the documentation of Fab.XF)
==> docs.fabulous.dev/maui
.......==> docs.fabulous.dev/maui/v2.1
..............==> docs.fabulous.dev/maui/v2.1/development
The root of docs.fabulous.dev would be hosted on a separate repo. Say
fsharp-mobile/docs.fabulous.dev
This repo would have a template website on the
main
branch, and would be published on GitHub Pages.Same for the API reference:
api.fabulous.dev (landing page for the API reference)
==> api.fabulous.dev/fabulous
==> api.fabulous.dev/xamarin.forms (landing page for the API reference of Fab.XF)
==> api.fabulous.dev/maui
.......==> api.fabulous.dev/maui/v2.1
..............==> api.fabulous.dev/maui/v2.1/button
The root of api.fabulous.dev would be hosted on a separate repo. Say
fsharp-mobile/api.fabulous.dev
This repo would have a template website on the
main
branch, and would be published on GitHub Pages.Each repos (Fabulous, Fabulous.XamarinForms, Fabulous.Maui) would be expected to have 2 folders:
docs
andapi
.On commit that change either
docs
orapi
, it would push the contents to their respectivefsharp-mobile/docs.fabulous.dev
andfsharp-mobile/api.fabulous.dev
on their own branch (Fab.XF ==>xf
branch, Fab.Maui ==>maui
branch).Whenever a new commit is added to either
fabulous.dev
,docs.fabulous.dev
orapi.fabulous.dev
, it would trigger a build and push to GitHub Pages.docs.fabulous.dev
andapi.fabulous.dev
would pull all their "known" branches into the main template and compile everything together, effectively releasing a single website for all frameworks.@edgarfgp What do you think? Do you know of a better way to handle that?
Beta Was this translation helpful? Give feedback.
All reactions