Source repository for franklyflawless.org and hosting.franklyflawless.org.
  • HTML 68.9%
  • Python 31.1%
Find a file
Frank Lý 675ad5123c
All checks were successful
Build and Deploy / reset-status (push) Has been skipped
Build and Deploy / deploy (push) Successful in 16s
refactor(ci): make release calendar self-contained and eliminate cross-repo interactions
Migrate all Firefox release-day automation into the Website repository:

- Add .scripts/sync-calendar.py to fetch ICS from upstream
- Add .scripts/regenerate-cron.py to rewrite deploy.yml schedule block
- Add .scripts/reset-status.py for local front-matter reset
- Add .data/release-calendar.json as the local pinned cache
- Update deploy.yml to self-heal its own cron triggers on each release
- Remove dependency on FlawlessFox for status resets or cron updates

BREAKING CHANGE: The Website CI no longer accepts pushes or external
script invocations from other repositories. All scheduling is now
derived from webcal://whattrainisitnow.com/calendar/future/releases/.
2026-07-08 16:36:28 +02:00
.data refactor(ci): make release calendar self-contained and eliminate cross-repo interactions 2026-07-08 16:36:28 +02:00
.forgejo/workflows refactor(ci): make release calendar self-contained and eliminate cross-repo interactions 2026-07-08 16:36:28 +02:00
.scripts refactor(ci): make release calendar self-contained and eliminate cross-repo interactions 2026-07-08 16:36:28 +02:00
hosting Reset all entry statuses to pending (Firefox release cycle) 2026-05-19 00:00:58 +00:00
root Underline card-url on hover, logo copyright READMEs, update docs 2026-04-19 08:52:22 +02:00
themes April 2025 update (2 of 2) 2026-05-02 05:00:46 +02:00
.gitmodules Use relative submodule URL for CI compatibility 2026-04-15 06:44:29 +02:00
LICENSE Initial commit 2026-04-15 04:53:30 +02:00
README.md refactor(ci): make release calendar self-contained and eliminate cross-repo interactions 2026-07-08 16:36:28 +02:00

Website

Source repository for franklyflawless.org and hosting.franklyflawless.org.

Built with Hugo using the Directory theme.

Structure

Website/
├── .forgejo/workflows/   # CI/CD pipeline
├── .scripts/             # Repository-local automation scripts
│   ├── sync-calendar.py      # Fetch ICS release calendar from upstream
│   ├── regenerate-cron.py    # Rewrite deploy.yml schedule from cache
│   └── reset-status.py       # Reset hosting entry statuses to pending
├── .data/                # Cached data
│   └── release-calendar.json # Firefox release date cache (ICS-derived)
├── hosting/              # hosting.franklyflawless.org
│   ├── hugo.toml
│   ├── archetypes/
│   ├── content/          # Service entries (one .md per provider)
│   ├── layouts/          # Site-specific template overrides
│   └── static/img/       # Provider logos (see img/README.md)
├── root/                 # franklyflawless.org
│   ├── hugo.toml
│   ├── layouts/
│   └── static/img/       # Service logos (see img/README.md)
├── themes/directory/     # Git submodule → hugo-directory
├── LICENSE
└── README.md

Setup

git clone --recurse-submodules https://forgejo.franklyflawless.org/FranklyFlawless/Website.git
cd Website

Release calendar

The repository maintains its own cached copy of the Firefox release calendar (.data/release-calendar.json) derived from the authoritative ICS feed:

webcal://whattrainisitnow.com/calendar/future/releases/

On each scheduled release day the CI workflow:

  1. Fetches the live ICS feed.
  2. Merges newly announced future releases into the local cache.
  3. Regenerates the cron schedule in .forgejo/workflows/deploy.yml.
  4. Resets all hosting/content/*.md entry statuses to pending.
  5. Commits the updated cache and workflow.
  6. Rebuilds and deploys both sites.

No cross-repository interactions are required.

Adding a hosting entry

cd hosting
hugo new content/provider-name.md

Edit hosting/content/provider-name.md with the service details. Download the provider logo to hosting/static/img/provider-name.svg.

Overridable values

The following values are specific to this deployment and should be changed if forking:

File Value Purpose
hosting/hugo.toml baseURL Hosting directory domain
root/hugo.toml baseURL Root domain
hosting/layouts/index.html https://franklyflawless.org Home navigation link
hosting/layouts/_default/single.html https://franklyflawless.org Home navigation link
hosting/layouts/_default/single.html forgejo.franklyflawless.org/FranklyFlawless/Website Git commit URL prefix
root/layouts/index.html Service URLs and thumbnails Root domain entry list

The theme also contains a hard-coded Forgejo commit URL prefix in layouts/partials/card.html. See the theme README for details.

Provider and service logos in hosting/static/img/ and root/static/img/ are property of their respective owners and are not covered by this repository's CC0-1.0 license. See the README.md file in each img/ directory for details.

Building locally

# Root site
cd root && hugo --themesDir ../themes

# Hosting directory
cd hosting && hugo --themesDir ../themes

License

CC0-1.0 (excluding provider/service logos — see above)