Fermer

avril 20, 2020

Déployer des applications CMS Sling avec des actions GitHub


J'utilise Apache Sling CMS pour mon site personnel donc je peux facilement créer mes articles de blog depuis presque partout . Malheureusement, comme il s'agit d'un site personnel, je ne dépense pas exactement les dollars pour créer un processus d'intégration / de livraison continu complet.

Entrez les actions GitHub

GitHub fournit Actions une solution gratuite à usage limité pour exécuter du code sur les événements du référentiel Git. Avec GitHub Actions, je peux configurer un pipeline pour déployer automatiquement mon code sur les modifications apportées à la branche principale.

Actions Définition du pipeline

Le pipeline est défini comme un fichier YAML, deploy.yaml, sous le répertoire .github.workflows dans mon référentiel de codes.

 # Déploie les mises à jour de code sur mon site personnel lors de l'envoi à la branche principale

nom: Déployer sur Push
sur:
  pousser:
    branches:
      - Maître
travaux:
  construire:
    runs-on: ubuntu-latest
    pas:
    - utilise: actions / [email protected]
     - nom: Configurer JDK 1.8
      utilise: actions / [email protected]
       avec:
        version java: 1.8
        id-serveur: github
        settings-path: $ {{github.workspace}}
    - nom: Build and Deploy
      exécuter: mvn install -B -s $ GITHUB_WORKSPACE / settings.xml -PautoInstallBundle, ci
      env:
        SLING_HOST: $ {{secrets.DEPLOY_HOST}}
        SLING_USERNAME: $ {{secrets.DEPLOY_USERNAME}}
        SLING_PASSWORD: $ {{secrets.DEPLOY_PASSWORD}}
        SLING_PROTOCOL: https
        SLING_PORT: 443 

Quelques éléments à noter sur la définition de pipeline:

  • La définition sur contient ma définition d'invocation, dans ce cas, pousse vers master
  • Dans la commande Maven, je 'ai ajouté un profil personnalisé ci ce profil copiera les variables d'environnement vues dans l'objet env
  • Le paramètre env à Build and Deploy contient les paramètres, y compris paramètres secrets pour déploiement du code

Garder les secrets secrets

Afin de déployer mon code, je dois fournir l'URL de création du CMS et le nom d'utilisateur / mot de passe pour un utilisateur administratif. Naturellement, je ne veux pas mettre ces informations sur le Web. Avec les actions GitHub, je peux créer des secrets dans le projet:

 Configurer les instances d'action GitHub

Et puis utiliser le profil ci dans le POM pour copier ces secrets en tant que variables d'environnement à partir de env paramètre du pipeline Actions Github dans les propriétés du projet Maven.

 
     ci 
    
         $ {env.SLING_HOST} 
         $ {env.SLING_PORT} 
         $ {env.SLING_USERNAME} 
         $ {env.SLING_PASSWORD} 
         $ {env.SLING_PROTOCOL} 
    
 

Une fois que tout est câblé, vous pouvez apporter une petite modification pour exécuter le pipeline et vous devriez voir le déploiement réussir. Notez que les secrets sont cachés dans les journaux, donc même si un utilisateur peut voir le pipeline, il ne peut pas voir les valeurs secrètes.

 Résultat d'exécution des actions GitHub

Avec les actions Github, vous pouvez non seulement héberger un petit site Web CMS Apache Sling gratuit mais vous pouvez même avoir un processus CI / CD fiable!






Source link