Exercice - Automatiser les mises à jour avec GitHub Actions
GitHub Actions est un moyen d’automatiser des pipelines CI/CD pour de nombreux services différents, notamment Azure SQL Database.
Souvenez-vous que dans le scénario de localisation de bus, vous allez poser les bases de votre application avec votre base de données. Quand vous souhaitez mettre à jour la base de données ou déployer automatiquement les mêmes configurations dans une nouvelle base de données, vous pouvez utiliser GitHub Actions.
Pour automatiser les mises à jour, vous devez configurer des secrets GitHub et un fichier YAML. Une fois ces éléments configurés, les nouvelles validations poussées (push) déclenchent des workflows qui mettent à jour votre base de données Azure SQL ou d’autres services.
Configurer des secrets de manière sécurisée avec GitHub
Les secrets GitHub introduisent un moyen de stocker des secrets, des clés et d’autres informations sensibles dans GitHub de manière sécurisée. Dans cette section, vous allez créer un secret GitHub qui comprend votre chaîne de connexion Azure SQL Database.
Dans un fichier texte, dans le Bloc-notes ou sur papier, déterminez la chaîne de connexion de votre base de données Azure SQL. Elle doit se présenter ainsi :
Server=<server-name>.database.windows.net,1433;Initial Catalog=bus-db;User Id=cloudadmin;Password=<your-password>;Connection Timeout=30;
.Accédez à votre dépôt pour ce module sur GitHub (veillez à être connecté). Il doit se présenter ainsi :
https://github.com/<your-git-username>/serverless-full-stack-apps-azure-sql
.Sélectionnez Settings pour le dépôt.
Sélectionnez Secrets et variables>Actions>Nouveau secret de dépôt et entrez les informations suivantes :
- Name : AZURE_SQL_CONNECTION_STRING
- Secret : Chaîne de connexion de l’étape précédente
Sélectionnez Ajouter un secret.
Configurer le fichier YAML pour GitHub Actions
Plusieurs fichiers YAML de modèle sont disponibles dans le dépôt de code. Pour ce module, vous utiliserez uniquement le fichier de workflow pour Azure SQL Database.
Dans Visual Studio Code, sélectionnez l’icône Explorateur dans la Barre d’activité pour afficher les fichiers de référentiel. Si vous ne les voyez pas, sélectionnez Fichier>Ouvrir le dossier et accédez à l’emplacement où vous avez cloné le dépôt.
Sous le dossier
.github\workflows
, renommezazuresqldatabase.yml.template
enazuresqldatabase.yml
.Passez en revue le modèle et cherchez à comprendre ce que le workflow fera et comment il mettra à jour la base de données.
Pousser (push) les validations et superviser les résultats avec Visual Studio Code et GitHub
Maintenant que le secret GitHub et le fichier de workflow sont configurés, vous êtes prêt à pousser vos commits et à observer le workflow.
Sélectionnez l’icône Contrôle de code source dans la Barre d’activité.
Dans la zone Message, entrez « Activer le fichier YAML de base de données » ou un autre message.
Sélectionnez la coche. Si vous recevez un avertissement sur la validation sans mettre en lots des fichiers, vous pouvez sélectionner Oui pour mettre en lots les fichiers modifiés.
Sélectionnez ...>Push. Vos mises à jour sont envoyées à votre dépôt hébergé sur GitHub, ce qui a pour effet de lancer les actions GitHub.
Important
Si vous êtes invité à vous connecter, vous devez utiliser votre nom d’utilisateur GitHub et obtenir un jeton d’accès personnel à fournir au lieu de votre mot de passe GitHub. Pour ce faire, accédez à https://github.com/settings/tokens/new. Ajoutez une note
VSCode
, cochez toutes les cases, puis sélectionnez Générer un jeton. Copiez le texte du jeton et enregistrez-le en lieu sûr. De retour dans Visual Studio Code, utilisez le jeton en tant que mot de passe/jeton pour vous connecter à GitHub.Accédez à votre dépôt GitHub pour ce module, puis sélectionnez Actions. GitHub Actions vous permet d’automatiser, de personnaliser et d’exécuter vos workflows de développement logiciel à partir de votre référentiel.
Observez le contenu du workflow en cours d’exécution (ou terminé). Notez que l’action Azure SQL utilise le fichier
.dacpac
dans votre dépôt pour déployer l’état final de la base de données sur votre base de données Azure SQL.