This commit is contained in:
southerntofu 2021-01-04 21:03:13 +01:00
commit 63d1f3b9f5
8 changed files with 29 additions and 5 deletions

View File

@ -7,6 +7,16 @@ The forge suite is a collection of tools to automate tasks by tracking updates o
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.
# Usecases
## Multi-user CI/CD
![Diagram showing the forge sending a webhook to the endpoint, which validates it then passes the information to forgehook, which notifies subscribers, triggering forgebuild tasks](multi-CI.png)
## Solo, unprivileged CI/CD
![Diagram showing the forge sending a webhook to the endpoint, which validates it then passes the information to forgebuild, triggering tasks](solo-CI.png)
# 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.

View File

@ -1 +1 @@
../submodules/build/README.md
../submodules/build/README.fr.md

BIN
content/multi-CI.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
content/solo-CI.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -1,4 +1,6 @@
+++
title="Statut des tests"
title="Résultats des tests"
template="status.html"
+++
Ici tu trouveras les derniers résultats des tests pour la suite forge. Ils sont directement lancés sur le serveur après chaque commit.

View File

@ -19,3 +19,10 @@ td, th {
.testrun > ul {
list-style-type: none;
}
.widget-tests {
> h2 {
text-align: center;
text-decoration: underline;
}
}

View File

@ -3,9 +3,14 @@
{{ super() }}
{% if page.extra.pipeline %}
{% if page.extra.pipeline in config.extra.tests.pipelines %}
<hr>
<aside class="widget-tests">
{{ tests::pipeline(directory=config.extra.tests.directory, name=page.extra.pipeline) }}
</aside>
{% else %}
<p>No such pipeline ({{ page.extra.pipeline }}) defined in config.extra.pipelines</p>
<h2>No such pipeline ({{ page.extra.pipeline }}) defined in config.extra.pipelines</h2>
{% endif %}
{% else %}
<h2>Test pipeline for project not defined in frontmatter (page.extra.pipeline).</h2>
{% endif %}
{% endblock %}

View File

@ -1,5 +1,5 @@
{% macro pipeline(directory, name) %}
<h2>{{ name }}</h2>
<h2 id="{{ name }}">{{ name }}</h2>
{% set latest = [] %}
{% set data = [] %}
{% for impl in config.extra.tests.pipelines[name].impl %}
@ -36,7 +36,7 @@
{% for impl in config.extra.tests.pipelines[name].impl %}
{% set suite_index = loop.index0 %}
<h2>{{ impl.name }}</h2>
<h3>{{ impl.name }}</h3>
{# This is a hack because we can't reverse a map (only arrays) #}
{% set_global runs = [] %}
{% for key, val in data[suite_index] %}{% set_global runs = runs | concat(with=key) %}{% endfor %}