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.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
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-pagesis triggereddocsbranchdocsfolder on themainbranch 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.devThis repo would have a template website on the
mainbranch, 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.devThis repo would have a template website on the
mainbranch, and would be published on GitHub Pages.Each repos (Fabulous, Fabulous.XamarinForms, Fabulous.Maui) would be expected to have 2 folders:
docsandapi.On commit that change either
docsorapi, it would push the contents to their respectivefsharp-mobile/docs.fabulous.devandfsharp-mobile/api.fabulous.devon their own branch (Fab.XF ==>xfbranch, Fab.Maui ==>mauibranch).Whenever a new commit is added to either
fabulous.dev,docs.fabulous.devorapi.fabulous.dev, it would trigger a build and push to GitHub Pages.docs.fabulous.devandapi.fabulous.devwould pull all their "known" branches into the main template and compile everything together, effectively releasing a single website for all frameworks.graph LR; Main(fsharp-mobile/fabulous.dev)-->CommitMain{On commit} CommitMain-- compile template -->fabulous.dev A(Fabulous.XamarinForms)-->CommitA{On commit} CommitA-->docsA(docs) CommitA-->apiA(api) docsA-- push changes to branch Xamarin.Forms -->sitedocs(fsharp-mobile/docs.fabulous.dev) apiA-- push changes to branch Xamarin.Forms -->siteapi(fsharp-mobile/api.fabulous.dev) B(Fabulous.Maui)-->CommitB{On commit} CommitB-->docsB(docs) CommitB-->apiB(api) docsB-- push changes to branch Maui -->sitedocs apiB-- push changes to branch Maui -->siteapi sitedocs-- compile template & branches content -->docs.fabulous.dev siteapi-- compile template & branches content -->api.fabulous.dev@edgarfgp What do you think? Do you know of a better way to handle that?
Beta Was this translation helpful? Give feedback.
All reactions