Générer et déployer des projets de base de données dans GitHub Actions et Azure DevOps
Les bases de données étant des composants essentiels de solutions plus vastes, les développeurs doivent trouver des moyens efficaces de gérer le développement des bases de données de la même façon qu’ils gèrent le code d’application. Cette tâche est particulièrement difficile, car le développement de base de données est étroitement lié aux données qu’elles contiennent, ce qui ajoute des couches de complexité.
Heureusement, des outils comme GitHub Actions et Azure DevOps Services offrent des solutions robustes pour gérer ces complexités. Ces deux plateformes prennent en charge le déploiement de DACPAC, ce qui simplifie le processus de déploiement des modifications de base de données en les empaquetant dans un package Composant d’application de niveau données (DAC). Cette approche garantit non seulement la cohérence et la fiabilité des déploiements de base de données, mais elle s’intègre aussi de manière transparente aux pipelines d’intégration et de déploiement continus (CI/CD), ce qui facilite pour les développeurs la maintenance et la mise à jour des bases de données en parallèle de leur code d’application.
Les exemples de cette unité supposent que vous avez déjà :
- Un abonnement Azure avec des autorisations adéquates pour créer et gérer des ressources.
- Visual Studio Code installé avec les extensions suivantes :
- Un compte GitHub avec un dépôt GitHub privé créé avec le rôle Propriétaire.
- Une instance Azure SQL Database configurée avec l’option Autoriser l’accès aux services Azure activée. Démarrage rapide : Créer une base de données unique Azure SQL Database.
Utiliser GitHub Actions pour se connecter à Azure SQL Database
Vous pouvez utiliser GitHub Actions pour vous connecter à votre instance Azure SQL Database et publier des projets SQL en utilisant des fichiers DACPAC.
L’utilisation de GitHub Actions pour se connecter à Azure SQL Database se fait en trois étapes principales.
- Cloner le dépôt GitHub dans Visual Studio Code.
- Créer un projet de base de donnée dans Visual Studio Code.
- Configurer l’intégration continue (CI) avec GitHub Actions.
Cloner le dépôt GitHub
Vous pouvez cloner le dépôt GitHub que vous avez créé en suivant ces étapes.
- Dans Visual Studio Code, sélectionnez Affichage>Palette de commandes.
- Dans la palette de commandes, tapez Git : Cloner, puis sélectionnez cette option.
- Entrez l’URL de votre dépôt et sélectionnez Cloner.
- Sélectionnez ou créez un dossier où stocker vos fichiers de dépôt.
Créer un projet de base de donnée dans Visual Studio Code
Dans Visual Studio Code, configurez un nouveau projet de base de données et enregistrez-le dans le même dossier que celui où vous avez cloné le dépôt GitHub.
Pour plus d’informations sur la création d’un projet de base de données dans Visual Studio Code, consultez SQL Server Development with Visual Studio Code.
Une fois que vous avez créé votre projet de base de données, ajoutez du code pour modifier votre instance Azure SQL Database. Ensuite, validez vos modifications dans votre dépôt GitHub afin de garantir qu’elles sont suivies et intégrées à votre système de gestion de version.
Configurer l’intégration continue avec GitHub Actions
Pour configurer l’intégration continue (CI) avec GitHub Actions, créez un fichier .yml dans le chemin /.github/workflows/ de votre dépôt. Le fichier .yml comporte deux sections.
- Configurer l’authentification
- Créer un flux de travail GitHub
La section Configurer l’authentification configure les secrets GitHub, tandis que la deuxième section crée un workflow GitHub Actions.
Authentification
Commencez par créer un principal de service avec la commande az ad sp create-for-rbac dans Azure CLI. Utilisez Azure Cloud Shell dans le portail Azure pour exécuter le code Azure CLI suivant. Remplacez les espaces réservés par votre ID d’abonnement, le nom de votre groupe de ressources et le nom de votre application.
az ad sp create-for-rbac --name "myML" --role contributor --scopes /subscriptions/<subscription-id>/resourceGroups/<group-name> --json-auth
La sortie est un objet JSON avec les informations d’identification relatives à l’attribution de rôle. Enregistrez le fichier sous la forme d’un secret GitHub.
Ensuite, créez la chaîne de connexion SQL. Vous pouvez la copier à partir du portail Azure. Dans votre instance Azure SQL Database, ouvrez Paramètres>Chaînes de connexion.
Copiez la chaîne de connexion ADO.NET, puis remplacez les espace réservé par le nom de votre base de données et votre mot de passe. La chaîne de connexion ressemble à ceci :
Server=tcp:my-sql-server.database.windows.net,1433;Initial Catalog={your-database};Persist Security Info=False;User ID={admin-name};Password={your-password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;
Cette chaîne de connexion sera également stockée sous forme de secret GitHub.
Dans votre dépôt GitHub, ajoutez les secrets dans Paramètres>Sécurité ->Secrets et variables>Actions. Créez des secrets nommés AZURE_CREDENTIALS pour stocker le texte JSON et AZURE_SQL_CONNECTION_STRING pour stocker la chaîne de connexion.
Vous êtes maintenant prêt à créer votre workflow.
Remarque
Dans un environnement de production, envisagez d’utiliser les identités managées pour permettre à votre GitHub Action d’accéder à la base de données, plutôt que l’authentification SQL. Pour en savoir plus, consultez Identités managées dans Microsoft Entra pour Azure SQL.
Créer un flux de travail GitHub
Dans votre dépôt GitHub, sélectionnez Actions et Configurer soi-même un workflow. Un fichier main.yml vide s’ouvre.
Vous pouvez maintenant générer votre fichier YAML. Pour obtenir la syntaxe détaillée et les instructions, consultez Workflow pour GitHub Actions. Par exemple, la balise name: spécifie le nom du workflow, tandis que la valeur on indique les événements qui déclenchent son exécution.
Conseil
Le Démarrage rapide pour GitHub Actions vous permet de démarrer rapidement avec des fonctionnalités supplémentaires de GitHub Actions.
Déploiement d’Azure SQL Database avec Azure DevOps Services
Vous pouvez également déployer des mises à jour vers une instance Azure SQL Database avec Azure DevOps Services. Pour démarrer, vous aurez besoin d’un compte Azure DevOps Services, d’un système de gestion de version (par exemple, Azure Repos ou GitHub) et de Visual Studio Code avec l’extension SQL Database installée.
Azure DevOps Services inclut Azure Pipelines qui génère, teste et déploie automatiquement du code. En utilisant Azure Pipelines, vous pouvez prendre en charge l’intégration et le déploiement continus (CI/CD) des modifications de l’instance Azure SQL Database au sein de votre projet. Cette intégration garantit que les modifications de votre base de données sont appliquées de manière cohérente et fiable.
Azure Pipelines est intégré de manière transparente à différents systèmes de gestion de version, notamment GitHub et Azure Repos. Azure Pipelines vous permet d’exécuter des scripts SQL dans le cadre d’un pipeline, en utilisant des scripts Azure PowerShell pour créer et supprimer des règles de pare-feu dans Azure, ce qui garantit une gestion sécurisée et efficace des bases de données.
Pour plus d’informations sur les options de déploiement d’Azure SQL Database, consultez Déploiement d’Azure SQL Database dans la documentation d’Azure DevOps Services.