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:
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.
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