Suppr du bug pour run complet avec test réussi #48
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Workflow pour dockeriser l'application | |
# et l'envoyer dans un registre de conteneur Azure | |
# puis redémarrer l'instance de conteneur | |
name: Tests, dockerisation et mise en production | |
# Ce workflow se déclanchera en cas de push | |
# sur la branche master | |
on: | |
push: | |
branches: [ "master" ] | |
jobs: | |
tests_unitaires: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Set up de Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: 3.11 | |
- name: Installation des dépendances | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r ./app/requirements_test.txt | |
- name: Lancement des tests avec pytest | |
# Lancement de pytest et message d'erreur si un des tests n'est pas concluant | |
# Si un des tests n'est pas concluant, arrêter le workflow avec exit 1 | |
run: | | |
pytest ./app/test_main.py || (echo "Le test n'est pas concluant, arrêt du workflow." && exit 1) | |
build_push_and_restart: | |
# Needs : ce job ne doit être lancé qu'à l'issue des tests unitaires | |
needs: tests_unitaires | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
# Bien mettre lfs: true si on utilise Git large file storage | |
# sinon ça va copier le pointeur au lieu du fichier | |
with: | |
lfs: true | |
# Toujours dans le cas où on utilise git lfs | |
- name: Récupération du fichier sur Git LFS | |
run: git lfs pull | |
# Connexion au registre de conteneur | |
- name: Connexion au registre de conteneur | |
uses: azure/docker-login@v1 | |
with: | |
login-server: applastregist.azurecr.io | |
username: ${{ secrets.REGISTRY_USERNAME }} | |
password: ${{ secrets.REGISTRY_PASSWORD }} | |
# Création du conteneur et push dans le registre | |
- name: Dockérisation et push dans le registre | |
run: | | |
docker build . -t applastregist.azurecr.io/myapp:monimage | |
docker push applastregist.azurecr.io/myapp:monimage | |
# Connexion à Azure pour pouvoir lancer la commande de redémarrage | |
- name: Connexion à Azure | |
uses: azure/login@v1 | |
with: | |
creds: ${{ secrets.AZURE_CREDENTIALS }} | |
# Redémarrage de l'instance de conteneur | |
# pour prendre en compte la version nouvellement crée | |
- name: Redémarrage de l'instance de conteneur Azure | |
run: | | |
az container restart --resource-group stack-tags-predictor_group --name instance-auto-maj | |