GitHub : Déployer un site web vers EX2¶
EX2 permet de déployer un site web via git ou FTP. Voyons comment automatiser le déploiement via FTP. Nous utiliserons lftp pour l’envoi des fichiers : Se connecter au cPanel de l’instance sur EX2 pour ajouter un compte FTP. La seule caractéristique à vérifier est que le répertoire sélectionné soit bien le dossier final contenant les fichiers, par exemple Les étapes suivantes peuvent servir à déployer depuis n’importe quelle machine et ne sont pas liées à GitHub. D’abord, nous aurons besoin de définir ces constantes : Voici la dernière étape qui permet de faire un miroir d’un dossier local vers un dossier distant (remplacer Maintenant que les étapes sont connues, nous utiliserons un workflow GitHub pour déployer le site à chaque changement poussé sur la branche principale du dépôt. Dans les paramètres du dépôt GitHub, créer des secrets identiques aux constantes déclarées plus haut. Voici le script YAML complet : Un exemple spécifique à Python, utilisé par ce site même, peut être visible par ici : BoboTiG/luma deploy.yml. Premier jet.Prérequis¶
sudo apt install lftp
public_html/luma
.Manuel¶
Constantes¶
FTP_URL='HOST'
FTP_USER='USERNAME'
FTP_PASSWORD='PASSWORD'
Répliquer¶
FOLDER
par le dossier local) :lftp \
-e 'set ssl:verify-certificate false ; mirror --delete --transfer-all --reverse --verbose=1 ./FOLDER . ; quit' \
-u "${FTP_USER},${FTP_PASSWORD}" \
"ftp://${FTP_URL}"
Automatisation¶
Secrets¶
Workflow¶
name: Deploy
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: sudo apt install -y lftp
- name: Mirror
run: |
lftp \
-e 'set ssl:verify-certificate false ; mirror --delete --transfer-all --reverse --verbose=1 ./FOLDER . ; quit' \
-u '${{ secrets.FTP_USER }},${{ secrets.FTP_PASSWORD }}' \
'ftp://${{ secrets.FTP_URL }}'
Exemple Complet¶
📜 Historique¶