Déployer automatiquement sur un FTP lors d’un commit

Jusqu’à présent et depuis des années maintenant, j’utilise OVH avec un hébergement mutualisé. Je dispose d’un FTP et à chaque fois que je veux faire des modifications sur mon thème WordPress, je dois les appliquer à la main via FTP, ce qui est pénible à faire. Cela mets surtout un frein à mon processus de création, et me ralenti, voire me décourage lorsque je veux faire des modifications.

J’ai découvert très récemment dans le contexte professionnel l’utilisation des Actions Github pour automatiser certaines tâches. Je me suis demandé si c’était possible d’appliquer ça sur mon site. Je souhaiterais que lorsque je pousse un changement sur Github, mon site soit mis à jour automatiquement sans autre action de ma part. J’ai regardé et trouvé directement une action qui permet de déployer sur un FTP. J’ai donc testé l’exemple par défaut qui correspond à mon cas d’usage.

Et cela à marché du premier coup. J’ai crée une branche de test, nommé action, créé les tokens nécessaires pour que Github se connecte à mon FTP, puis rajouté cet Action Github. J’ai poussé le tout, et c’était presque magique de voir ma première execution de workflow se dérouler automatiquement sous mes yeux. J’ai vérifié que la tâche avait bien déposé les fichier sur mon FTP. Ils étaient bien là ! J’ai été vraiment étonné de la facilité de mise en place de cette solution.

Mon premier workflow

Suite à ça, j’ai rajouté la compilation des source frontend. Pareil, très facile à mettre en place car tout est bien documenté. Surtout, ma stack technique est très basique et répandu, donc j’ai trouvé très facilement comment faire. J’ai alors mis à jour le code puis fais des tests. Comme par magie, les assets compilés étaient dorénavant automatiquement envoyés sur le FTP lors du push sur la branch master.

Et tout cela, en quelques dizaines de minutes seulement. Je suis vraiment content d’avoir mis ça en place. La documentation des Actions Github est vraiment complète et les examples marchent bien. Ils sont exhaustif et la communauté a déjà beaucoup contribué, rendant toute l’expérience facile à mettre en place.

C’est donc un bon retour d’expérience pour moi. Je compte bien continuer à utiliser de plus en plus ce système tant du côté personnel que professionnel.

Pour finir, voici mon fichier deploy.yml (avec les commentaires et certaines étapes ajoutés plus tard que j’ai enlevé pour plus de clarté):

name: deploy

on:
  push:
    branches: [ "master" ]

jobs:
  web-deploy:
    name: 🎉 Deploy
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-versions: [ '18' ]
    steps:
    - name: 🚚 Get latest code
      uses: actions/checkout@v3

    - name: Use Node.js ${{ matrix.node-versions }}
      uses: actions/setup-node@v3
      with:
        node-version: ${{ matrix.node-versions }}

    - name: Build
      run: |
        npm ci
        npm run prod
    
    - name: 📂 Sync files
      uses: SamKirkland/FTP-Deploy-Action@4.3.0
      with:
        server: ${{ secrets.FTP_HOST }}
        username: ${{ secrets.FTP_USER }}
        password: ${{ secrets.FTP_PASS }}
        server-dir: ./www/wp-content/themes/jdd4/

Ça se lit très facilement et la plupart du code est directement copié collé des exemples donnés par les Action Github.


Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *