Déployer avec GitHub Actions

Nous allons voir comment déployer le contenu de la branche « main » (anciennement « master »), sur un VPS OVH. Le but étant d’utiliser « GitHub Actions », pour déployer à chaque fois que la branche « main » change.

Depuis GitHub

Je vais partir de ce GitHub Action :
https://github.com/marketplace/actions/rsync-deployments-action

Il faut sur votre repository GitHub, créer le fichier main.yml :
.github/workflows/main.yml

Puis y ajouter le contenu suivant :

# source : https://github.com/marketplace/actions/rsync-deployments-action
name: DEPLOY

# Sur un "push" dans la branche "main"
on:
  push:
    branches:
    - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2

      
      # Rsync deploy
      - name: rsync deployments
        uses: burnett01/rsync-deployments@4.1
        with:
          switches: -avzr --delete --exclude="" --include="" --filter=""
          remote_path: ~/httpdocs/
          remote_host: strange-solomon.111-112-113-114.plesk.page
          remote_user: strange-solomon
          remote_key: ${{ secrets.DEPLOY_KEY }}

Ensuite aller dans les « Settings / Secrets », pour y ajouter la variable « DEPLOY_KEY » :
https://github.com/votre-username-ici/votre-repository-ici/settings/secrets/actions

Depuis votre VPS OVH

Accéder depuis Plesk, par exemple, à « FTP Access » :

Ajouter dans « Access to the server over SSH » la valeur « /bin/bash » :

Connectez-vous en SSH au VPS OVH.

Vous devez arriver sur une arborescence dans l’esprit :

  • .gnupg
  • error_docs
  • httpdocs
  • logs

Créer vos keys SSH (private / public) – documentation :

ssh-keygen -t ed25519 -C "your_email@example.com"

Vous devez arriver sur une arborescence dans l’esprit (ajout du dossier .ssh) :

  • .gnupg
  • .ssh
  • error_docs
  • httpdocs
  • logs

Aller dans /.ssh/id_ed25519 (qui est la « key privée »), et copier son contenu sur :
« GitHub / Settings / Secrets / DEPLOY_KEY ».

Créer un fichier dans /.ssh nommé « authorized_keys » :
Coller le contenu du fichier « /.ssh/id_ed25519.pub » (qui est la « key publique »), dans « /.ssh/authorized_keys »

Si besoin de créer un fichier /.ssh/known_hosts :
ssh user@host (exemple strange-solomon@111.112.113.114)
Indiquer « yes » sur le retour de la commande précédente.

Coder > push > deploy

Il ne vous reste plus cas réaliser un changement sur votre branche « main », pour que GitHub Actions réaliser le déploiement automatiquement.

Vous pouvez suivre l’état du déploiement dans l’onglet « Actions » de votre repository GitHub.

Michael

Développeur / intégrateur, travaillant en agence web depuis 2005, je viens à présent vous proposer de venir découvrir mes créations personnelles de plugins / themes pour le CMS Wordpress & Prestashop, quelques solutions en mode SAAS & un peu d'actualité web ( / Twitter).

Vous aimerez aussi...