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.