Feat(ci): init CI
All checks were successful
Build / build (push) Successful in 3m36s

This commit is contained in:
2026-08-09 21:20:46 +02:00
parent d6f3b2961b
commit 55128fd0d4
2 changed files with 62 additions and 1 deletions

View File

@@ -0,0 +1,55 @@
# Compile les binaires des cinq plateformes à chaque poussée, et les dépose en
# artefacts téléchargeables depuis la page de l'exécution.
#
# Le dépôt n'ayant aucune dépendance, la pipeline se contente de reprendre les
# commandes de la machine de développement : node --test, puis ./build.sh, qui
# lance lui-même go test avant de compiler.
#
# Gitea lit les workflows dans .gitea/workflows/ — .github/workflows/ marche
# aussi, mais autant nommer les choses par leur maison.
name: Build
on:
push:
branches: [main]
pull_request:
branches: [main]
# Permet de relancer la compilation à la main depuis l'onglet Actions.
workflow_dispatch:
jobs:
build:
# Label déclaré par act_runner à son enregistrement. S'il a été enregistré
# avec d'autres labels, remplacer ici par celui qui existe :
# ./act_runner --config config.yaml daemon (les labels sont affichés au démarrage)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Installer Go
uses: actions/setup-go@v5
with:
go-version: '1.22'
# Le cache des modules s'appuie sur un go.sum, que ce dépôt n'a pas
# faute de dépendance : activé, il ferait échouer l'étape.
cache: false
- name: Tester le modèle métier
# Node est fourni par l'image du runner ; pas de setup-node, qui
# téléchargerait une distribution pour rien.
run: node --test
- name: Compiler les cinq plateformes
# build.sh lance go test ./... avant de compiler : le serveur est donc
# testé ici aussi.
run: ./build.sh
- name: Déposer les binaires
# v3 et non v4 : l'API d'artefacts de la v4 réclame une Gitea récente,
# là où la v3 fonctionne depuis 1.20.
uses: actions/upload-artifact@v3
with:
name: frise-binaires
path: dist/frise-*
retention-days: 30

View File

@@ -51,7 +51,12 @@ saisi. Pour découvrir l'outil sur des données réalistes, copier `data/exemple
Il faut [Go](https://go.dev) 1.22 ou plus récent, et rien d'autre : aucune dépendance externe, Il faut [Go](https://go.dev) 1.22 ou plus récent, et rien d'autre : aucune dépendance externe,
aucun `vendor/`. Les binaires des trois systèmes se produisent depuis une seule machine, sans aucun `vendor/`. Les binaires des trois systèmes se produisent depuis une seule machine, sans
intégration continue ni SDK tiers. SDK tiers.
Une pipeline Gitea rejoue les mêmes commandes à chaque poussée sur `main``node --test`, puis
`./build.sh` — et dépose les cinq binaires en artefacts de l'exécution, à récupérer depuis
l'onglet **Actions**. Elle ne remplace pas la compilation locale, elle la vérifie : rien
n'oblige à passer par elle pour produire un exécutable.
### Développer ### Développer
@@ -413,6 +418,7 @@ données. Aucune dépendance de part ni d'autre, les lanceurs intégrés à Node
|---|---| |---|---|
| `main.go` | Sert l'interface embarquée, expose `GET`/`PUT` sur `/api/data`, écrit les sauvegardes | | `main.go` | Sert l'interface embarquée, expose `GET`/`PUT` sur `/api/data`, écrit les sauvegardes |
| `build.sh` | Compile les binaires des cinq plateformes dans `dist/` | | `build.sh` | Compile les binaires des cinq plateformes dans `dist/` |
| `.gitea/workflows/build.yml` | Pipeline Gitea : tests puis `build.sh`, binaires déposés en artefacts |
| `js/model.js` | Données et règles métier : CRUD, validation, bornes, cycle de vie et horizon, référence, dérive, tags, regroupement par mois | | `js/model.js` | Données et règles métier : CRUD, validation, bornes, cycle de vie et horizon, référence, dérive, tags, regroupement par mois |
| `js/storage.js` | Dialogue avec le serveur, sauvegarde debouncée, indicateur d'état | | `js/storage.js` | Dialogue avec le serveur, sauvegarde debouncée, indicateur d'état |
| `js/timeline.js` | Rendu de la frise : échelle, couloirs, barres, jalons, pli/dépli, curseur | | `js/timeline.js` | Rendu de la frise : échelle, couloirs, barres, jalons, pli/dépli, curseur |