docker-image.yml 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. name: Build Docker Image
  2. on:
  3. push:
  4. branches:
  5. - main
  6. permissions:
  7. contents: read
  8. jobs:
  9. build:
  10. runs-on: ubuntu-latest
  11. steps:
  12. - name: Checkout code
  13. uses: actions/checkout@v7
  14. with:
  15. persist-credentials: false
  16. # Même version que le Dockerfile. Si les tests échouent, le job
  17. # s'arrête ici : rien n'est construit ni poussé sur Docker Hub.
  18. - name: Set up Python
  19. uses: actions/setup-python@v6
  20. with:
  21. python-version: "3.15"
  22. - name: Install dependencies
  23. run: pip install -r requirements.txt
  24. - name: Run tests
  25. run: python -m unittest
  26. - name: Log in to DockerHub
  27. env:
  28. DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
  29. DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
  30. run: |
  31. echo "$DOCKER_PASSWORD" | docker login \
  32. -u "$DOCKER_USERNAME" --password-stdin
  33. - name: Build Docker image
  34. env:
  35. DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
  36. run: |
  37. IMAGE="$DOCKER_USERNAME/chatbot-maisonnette"
  38. docker build . \
  39. -t "$IMAGE:$GITHUB_SHA" \
  40. -t "$IMAGE:latest"
  41. - name: Push Docker images
  42. env:
  43. DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
  44. run: |
  45. IMAGE="$DOCKER_USERNAME/chatbot-maisonnette"
  46. docker push "$IMAGE:$GITHUB_SHA"
  47. docker push "$IMAGE:latest"