Merge branch 'DEVOPS_2025_30_06_AddGithubActionToBuildAndRelease' #12
This file contains hidden or 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
| # Nom du workflow affiché dans l'interface GitHub Actions | |
| name: PlatformIO Build & Release | |
| # Événements qui déclenchent ce workflow | |
| on: | |
| push: | |
| branches: | |
| - main # S'exécute sur les pushes vers main, y compris les merges directs | |
| tags: | |
| - 'v*' # Déclenche le workflow lors du push d'un tag commençant par 'v' (ex: v1.0.0) | |
| pull_request: | |
| types: [closed] # S'exécute quand une pull request est fermée | |
| branches: | |
| - main # Spécifie que cela concerne les PRs ciblant la branche main | |
| if: github.event.pull_request.merged == true # S'exécute seulement si la PR a été mergée | |
| release: | |
| types: | |
| - created # Déclenche le workflow lors de la création manuelle d'une nouvelle release | |
| # Définition des jobs à exécuter | |
| jobs: | |
| build_and_release: | |
| # Exécute le job sur une machine virtuelle Ubuntu | |
| runs-on: ubuntu-latest | |
| # Étapes du job | |
| steps: | |
| # Étape 1: Cloner le dépôt GitHub | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| # Étape 2: Configurer Python (nécessaire pour PlatformIO) | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.x' # Utilise la dernière version de Python 3 | |
| # Étape 3: Installer PlatformIO Core | |
| - name: Install PlatformIO Core | |
| run: pip install platformio | |
| # Étape 4: Construire le projet PlatformIO | |
| # Cette étape va compiler votre code pour toutes les cartes définies dans platformio.ini | |
| - name: Build PlatformIO project | |
| run: | | |
| echo "Démarrage de la compilation PlatformIO..." | |
| pio run | |
| echo "Compilation PlatformIO terminée." | |
| # Étape 6: Créer une release GitHub et uploader les artefacts (si déclenché par tag ou release manuelle) | |
| - name: Create GitHub Release and Upload Assets | |
| # Cette étape s'exécute si le workflow est déclenché par un push de tag ou une création de release manuelle | |
| if: startsWith(github.ref, 'refs/tags/') || (github.event_name == 'release' && github.event.action == 'created') | |
| uses: softprops/action-gh-release@v2 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| # Utilise le nom du tag comme nom de la release | |
| tag_name: ${{ github.ref_name }} | |
| name: Release ${{ github.ref_name }} | |
| # Définir à true pour une release préliminaire, false pour une release finale | |
| prerelease: false | |
| # Chemin vers les fichiers à attacher à la release | |
| files: | | |
| .firmware/*.bin | |
| .firmware/*.bin.ota |