Integration équipe¶
Partager les versions de l'équipe et assurer la cohérence entre développement local et CI.
Commiter le fichier de versions¶
Le fichier .tool-versions (ou mise.toml) est commite dans Git :
Chaque développeur qui clone le dépôt obtient les mêmes versions :
git clone https://github.com/equipe/projet.git
cd projet
mise install # Installe toutes les versions du .tool-versions
Pinning de versions¶
| Format | Exemple | Comportement |
|---|---|---|
| Exact | node 20.11.0 | Toujours cette version (recommande) |
| Majeure | node 20 | Dernière 20.x.x installee |
| LTS | node lts | Dernière LTS |
| Latest | node latest | Dernière version stable |
Eviter latest et lts en production
latest et lts changent dans le temps. Deux développeurs qui font mise install a des dates différentes auront des versions différentes. Utilisez des versions exactes.
Integration CI¶
GitHub Actions¶
# .github/workflows/ci.yml
name: CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install mise
uses: jdx/mise-action@v2
- name: Install dependencies
run: npm install
- name: Run tests
run: npm test
Gitea Actions¶
# .gitea/workflows/ci.yml
name: CI
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install mise
run: |
curl https://mise.run | sh
echo "$HOME/.local/bin" >> $GITHUB_PATH
mise install
- name: Run tests
run: |
eval "$(mise activate bash)"
npm test
Vérification de cohérence¶
Ajouter un check dans la CI pour vérifier que les versions sont coherentes :
- name: Verify tool versions
run: |
eval "$(mise activate bash)"
echo "Node: $(node --version)"
echo "Python: $(python --version)"
mise ls
Cohérence locale/CI¶
Le même .tool-versions est lu en local et en CI. La cohérence est automatique si :
- Le fichier est commite dans Git
- La CI utilise mise pour installer les runtimes
- Les versions sont exactes (pas
latest)
graph LR
A[".tool-versions<br>node 20.11.0"] --> B["Poste dev<br>mise install"]
A --> C["CI<br>mise install"]
B --> D["node 20.11.0"]
C --> D Onboarding¶
Ajouter mise au script de bootstrap de l'équipe (voir Terminal) :