volted.net

A blog about being free, as in free speech

Déployer son blog avec Github Actions et Rsync

01 décembre, 2019 — sogal

Un article rapide sur l'usage des Actions Github dans le but de déployer un blog, ce qui peut être utile et faciliter votre flux de rédaction si, comme c'est le cas pour ce blog, les sources sont hébergées sur Github.

Les Actions Github sont un mécanisme permettant de construire des flux de travail assez intéressants pour de la compilation de code ou du déploiement. C'est plutôt bien documenter ici donc je ne vais tout réexpliquer mais simplement fournir un exemple de déploiement simple via Rsync.

Lorsque vous créez une action, cela se fait dans un fichier .yml situé dans un sous-dossier ".github/workflows situé dans votre dépôt. Vous pouvez nommer ce fichier comme voulez, il faut évidemment que son nom illuste le flux de travail qu'il réalise pour vous.

Voici un exemple:

name: CI_DEPLOY

on: [push]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v1
    - name: Deploy my blog
      env:
        KEY: ${{ secrets.SSH_PRIVATE_KEY }}
      run: |
        set -eu
        echo "Deploying blog files"
        SSHPATH="$HOME/.ssh"
        mkdir "$SSHPATH"
        echo "$KEY" > "$SSHPATH/key" && chmod 400 "$SSHPATH/key"
        SERVER_DEPLOY_PATH="user@ip_du_serveur:/chemin/vers/le/dossier/de_/destination"
        sh -c "rsync -arv --delete -e 'ssh -o StrictHostKeyChecking=no -i $SSHPATH/key -p 22' $GITHUB_WORKSPACE/ $SERVER_DEPLOY_PATH"

Vous noterez la variable d'environnement KEY, il s'agît d'un secret Github me permettant de me connecter via SSH à mon serveur.

Pour le reste, c'est un simple script Shell utilisant rsync. Les arguments qu'on lui passe sont à adapter à votre usage.

Tags: astuces, git