diff --git a/.gitmodules b/.gitmodules index 158c7fc..c8266f7 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "submodules/build"] path = submodules/build url = https://tildegit.org/forge/build +[submodule "themes/water"] + path = themes/water + url = https://tildegit.org/southerntofu/zola-water diff --git a/config.toml b/config.toml new file mode 100644 index 0000000..85edd12 --- /dev/null +++ b/config.toml @@ -0,0 +1,50 @@ +# The URL the site will be built for +base_url = "https://thunix.net/~southerntofu/forge" + +theme = "water" + +compile_sass = true +highlight_code = false +build_search_index = false +generate_rss = true + +default_language = "en" + +languages = [ + {code = "fr", rss = true} +] + +[extra] +# The common part of the title (appended to page/section titles) +title = "forge suite" +color = "light" +max_width_for = "body" +max_width = "800px" + +header = "_common/header.md" +menu = "_common/menu.md" + +[extra.forge] +# The baseURL for files tracked on the forge +browse = "https://tildegit.org/forge/site/src/branch/master/" +# Homepage of the forge +home = "https://tildegit.org/" +# Name of the forge +name = "tildegit" + +[translations] +[translations.fr] +source = "Source de cette page" +readmore = "Lire la suite" +previousPage = "Page précédente" +nextPage = "Page suivante" +dateFormat = "%d/%m/%Y" +nothing_yet = "Il n'y a pas encore d'article dans cette section." +[translations.en] +source = "Source for this page" +readmore = "Read more" +previousPage = "Previous page" +nextPage = "Next page" +dateFormat = "%m/%d/%Y" +nothing_yet = "There is no article in this section yet." + diff --git a/content/_common/header.fr.md b/content/_common/header.fr.md new file mode 100644 index 0000000..6f0b4b0 --- /dev/null +++ b/content/_common/header.fr.md @@ -0,0 +1,8 @@ ++++ ++++ + +# forge suite + +![logo forge](../../logo.png) + +## Ta Livraison/Intégration Continue (CI/CD) KISS & DIY diff --git a/content/_common/header.md b/content/_common/header.md new file mode 100644 index 0000000..284e2fb --- /dev/null +++ b/content/_common/header.md @@ -0,0 +1,8 @@ ++++ ++++ + +# forge suite + +![forge logo](../../logo.png) + +## Your DIY/KISS Continuous Integration & Delivery diff --git a/content/_common/menu.fr.md b/content/_common/menu.fr.md new file mode 100644 index 0000000..d5d9521 --- /dev/null +++ b/content/_common/menu.fr.md @@ -0,0 +1,12 @@ ++++ ++++ + +[Accueil](@/_index.md) + +--- + +[forgebuild](@/forgebuild.fr.md) + +--- + +forgehook diff --git a/content/_common/menu.md b/content/_common/menu.md new file mode 100644 index 0000000..3d43755 --- /dev/null +++ b/content/_common/menu.md @@ -0,0 +1,12 @@ ++++ ++++ + +[Home](@/_index.md) + +--- + +[forgebuild](@/forgebuild.md) + +--- + +forgehook diff --git a/content/_index.fr.md b/content/_index.fr.md new file mode 100644 index 0000000..67e9db0 --- /dev/null +++ b/content/_index.fr.md @@ -0,0 +1,38 @@ ++++ ++++ + +# Introduction + +La suite forge est une collection d'outils pour automatiser des tâches en suivant les mises à jours sur un dépôt distant. `forgebuild` est un gestionnaire de tâches qui récupère (pull) les mises à jour sur un dépôt distant (git, mercurial), tandis que `forgehook` est un système de notification qui diffuse (push) les mises à jour reçues depuis un dépôt via des webhooks. + +forgehook peut être branché à forgebuild pour déclencher des tâches automatiquement quand des mises à jour sont reçues, mais les deux outils peuvent être utilisés séparément et s'intégrer à tes propers outils. Si un outil se met en travers de ta route au lieu de te simplifier la vie, il s'agit d'un bug à corriger. + +# Motivations + +Ce projet a démarré car les distributions populaires de CI/CD (comme Drone CI ou Gitlab CI) sont des système très complexes, fortement intégrés dans un écosystème. La suite forge veut être plus portable et facile à intégrer dans ton propre écosystème. + +Toutes ces plateformes de CI/CD considèrent que le dépôt lui-même doit contenir les tâches à exécuter, par exemple dans un fichier `.gitlab-ci.yml`. Ce modèle de développement vertical (top-down) est adapté à une organisation contrôlant l'ensemble de sa chaine logistique logicielle (supply chain), mais constitue une grande restriction à la participation de tierces personnes, ce qui impacte négativement les projets bénévoles. + +La suite forge adopte une approche opposée, où tout le monde peut recevoir des mises à jour de dépôts distants, et exécuter les tâches qu'elle souhaite. Cela permet à n'importe qui, membre ou non de ton projet, de mettre en place de nouvelles suites de tests, benchmarks, ou autres intégrations. Les applications sont sans limite et devrait bénéficier à tes projets de plein de façons. + +**N'attends pas la permission des mainteneurs, juste forge !** + +# Principes + +- **Sécurité par simplicité**: tout peut être compris et audité +- **Composabilité**: les outils ne doivent jamais se mettre en travers de ton chemin +- **Spécification**: plusieurs implémentations existent pour chaque outil, suivant les spécifications correspondantes + +# Code De Conduite + +Ce projet respecte les [principes opérationnelles ~fr](https://fr.tild3.org/). + +# Securité + +Bien que la suite forge vise la sécurité par la simplicité, ça peut mordre. N'utilise pas cet outil pour des projets sensibles, vu que nous n'avons aucun audit de sécurité. + +Dans le futur, nous supporterons une chaine logistique sécurisée à travers des signatures PGP, inspirée par les [channel introductions](https://guix.gnu.org/en/blog/2020/securing-updates/) de GNU Guix. + +# Licence + +Tout est licencié sous licence GPLv3, sauf mention contraire. Le logo est une exception, je l'ai simplement trouvé sur Internet. diff --git a/content/_index.md b/content/_index.md new file mode 100644 index 0000000..fb00d2b --- /dev/null +++ b/content/_index.md @@ -0,0 +1,38 @@ ++++ ++++ + +# Introduction + +The forge suite is a collection of tools to automate tasks by tracking updates on a remote repository. `forgebuild` is a task runner which pulls updates from remote repositories (git, mercurial), while `forgehook` is a notification system to push updates received from a repository via webhooks. + +forgehook can be hooked to forgebuild to trigger tasks automatically when updates are received, but both tools can be useful on their own and integrate with your own tooling. If either tool gets in your way instead of easing your life, this is considered a bug and should be addressed. + +# Motivations + +This project was started because popular CI/CD distributions (such as Drone CI or Gitlab CI) are very convoluted systems, deeply tied to an ecosystem. The forge suite aims to be more portable and to easily integrate into your own ecosystem. + +All of these CI/CD plateforms consider the repository itself should contain the tasks to be run, for example in a `.gitlab-ci.yml` file. This top-down deployment model is well suited to an organization controling the whole of its software supply chain, but is a severe restriction to 3rd party involvement, which mostly hinders volunteer-run projects. + +The forge suite adopts an opposite approach, where anyone can receive updates from remote repositories, and run the tasks they wish. This allows anyone within or without your projects to setup new test suites, benchmarks, and integrations. The applications are endless and should benefit your projects in many ways. + +**Don't wait for the maintainers for permission, just forge on!** + +# Principles + +- **Security through simplicity**: everything can be understood, and audited +- **Composability**: the tools should not get in your way, under any circumstance +- **Specification**: multiple implementations exist for each tool, following their respective specifications + +# Code Of Conduct + +This project abides by the [~fr operating principles](https://fr.tild3.org/en/#operating-principles). + +# Security + +While the forge suite aims at security through simplicity, there may be ways it will bite you. Please don't use these tools for any sensitive project just yet, as we have not received a security audit. + +In the future, we will support a secure software supply chain through PGP signatures, inspired by GNU Guix's [channel introductions](https://guix.gnu.org/en/blog/2020/securing-updates/). + +# License + +Everything is licensed under GPLv3, unless noted otherwise. The logo is an exception, as I have merely copied it from the Internet. diff --git a/content/forgebuild.fr.md b/content/forgebuild.fr.md new file mode 120000 index 0000000..1050888 --- /dev/null +++ b/content/forgebuild.fr.md @@ -0,0 +1 @@ +../submodules/build/README.md \ No newline at end of file diff --git a/content/forgebuild.md b/content/forgebuild.md new file mode 120000 index 0000000..1050888 --- /dev/null +++ b/content/forgebuild.md @@ -0,0 +1 @@ +../submodules/build/README.md \ No newline at end of file diff --git a/static/logo.jpg b/static/logo.jpg new file mode 100644 index 0000000..aea162e Binary files /dev/null and b/static/logo.jpg differ diff --git a/static/logo.png b/static/logo.png new file mode 100644 index 0000000..dd013fb Binary files /dev/null and b/static/logo.png differ diff --git a/themes/water b/themes/water new file mode 160000 index 0000000..c4bfbea --- /dev/null +++ b/themes/water @@ -0,0 +1 @@ +Subproject commit c4bfbea16084d98ec38e35a60f21fcc1da8d6b00