# Contribuer

Quelques éléments à savoir:
- La branche `main` doit normalement suivre l'état des machines en production. Si vous ne déployez pas tout de suite faîtes une branche et une PR.
- Les commits doivent passer le crochet de `pre-commit` (cf ci-dessous pour savoir comment l'installer)


## Shell de développement et crochets `pre-commit`

Le dépot possède un shell de développement:
```
nix-shell
```

Pour installer les crochets, il suffit de lancer le shell de developpement une fois.


## Lister les machines

Dans le shell de developpement, exécuter:
```
list-nodes
```


## Lancer une vm de test

Dans le shell de developpement, exécuter:
```
launch-vm -p MACHINE
```

On peut faire du port forwarding (pour avoir accès à ssh par exemple) avec l'option `-p HOSTPORT-:GUESTPORT`.


## Tester les versions en production

En attendant [https://github.com/RaitoBezarius/mimir](`mimir`), on peut tester localement si c'est bien le dernier commit de main qui est déployé avec:
```
nix-shell --run 'check-deployment [NODE_NAME]'
```