diff --git a/README.md b/README.md index 4e3515b..d969bd4 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,35 @@ # ilot.io -Upstream: https://lab.ilot.io/ilot/ilot.io +Upstream: https://forge.ilot.io/ilot/ilot.io -![Build Status](https://lab.ilot.io/ilot/ilot.io/badges/main/pipeline.svg) +![Build Status](https://forge.ilot.io/ilot/ilot.io/badges/workflows/pages.yaml/badge.svg) +![Push Status](https://forge.ilot.io/ilot/ilot.io/badges/workflows/deploy.yaml/badge.svg) -## Description +## Forgejo Actions -This repository contains the source code to the [ilot.io](https://ilot.io) -website. +This project's static Pages are built by Forgejo Actions, following the steps +defined in [`.forgejo/workflows/pages.yaml`](.forgejo/workflows/pages.yaml). +That builds this website using ikiwiki, and pushes the build artifacts to the +`public` branch. -## GitLab CI +The `public` branch has its own workflow following steps defined in +[`forgejo/workflows/deploy.yaml`](.forgejo/workflows/deploy.yaml) +that uploads the artifacts to a remote HTTP server for deployment in +production. This workflow is automatically updated from `main` so that `public` +should never be manually modified. -This project's static Pages are built by [GitLab CI][ci], following the steps -defined in [`.gitlab-ci.yml`](.gitlab-ci.yml): +The deployment is done by a simple remote git push via SSH to a non-bare repo +where `git config receive.denyCurrentBranch` is set as `updateInstead`. This +allows this repo to be checked out as `public`, allowing it to be a root for +your favorite HTTP server. -We are using a theme based on -[Bootstrap 3](https://lab.ilot.io/ilot/ikiwiki-bootstrap-ilot) using submodules. +The following secrets are expected to be set for operation: +* PAGES_PRIVKEY: SSH private key that is used to push to the HTTP server's git +repo +* PAGES_TOKEN: Forgejo application token used to push to `public` branch. + +The following variables are expected to be set for operation: +* PAGES_TARGET: SSH target for HTTP server's git repo, following this format: +user@example.net:/path/to/http/repo ## Building locally @@ -25,9 +40,9 @@ To work locally with this project, you'll have to follow the steps below: * [mac][] * [linux][] * [source][] -1. Clone the submodules: `git submodule init && git submodule update` 1. Generate the website: `ikiwiki --setup ikiwiki.setup` 1. Start http-server: `./test-server.sh` +1. Preview your project: open 127.0.0.1:8080 in your browser Read more at ikiwiki's [documentation][]. @@ -37,7 +52,7 @@ Read more at ikiwiki's [documentation][]. 2. Checkout the forked repository. - - `git clone ssh://git@lab.ilot.io/$USER/ilot.io` + - `git clone ssh://git@forge.ilot.io/$USER/ilot.io` - `cd ilot.io` 3. Make your changes. @@ -60,11 +75,8 @@ Read more at ikiwiki's [documentation][]. 8. Once the tests in the merge-request pass, and reviewers are happy, your changes will be merged. -[ci]: https://about.gitlab.com/gitlab-ci/ [ikiwiki]: https://ikiwiki.info/ [source]: https://ikiwiki.info/install/ [linux]: https://ikiwiki.info/setup/ [mac]: https://ikiwiki.info/tips/ikiwiki_on_mac_os_x/ [documentation]: https://ikiwiki.info/ -[userpages]: https://docs.gitlab.com/ce/user/project/pages/introduction.html#user-or-group-pages -[projpages]: https://docs.gitlab.com/ce/user/project/pages/introduction.html#project-pages