Générez des fichiers *.dacpac à partir du projet VS Database dans GitHub Actions
Si vous avez besoin de travailler avec des bases de données et que vous souhaitez effectuer un développement agile, vous devez disposer d’un flux dans lequel chaque fois que vous ajoutez ou modifiez une table, un SP, une fonction, il la compilera et générera le fichier de déploiement pour la base de données.
Je fais cette approche depuis longtemps maintenant, nous effectuons les modifications en local, comparons à notre projet de base de données, puis lorsque nous validons et transmettons nos modifications, ils génèrent un fichier bacpac qui ira dans la base de données.
Cela élimine tous les problèmes liés au fait de le faire à la main, ce qui peut provoquer une erreur humaine et dans une base de données, c’est une très mauvaise nouvelle.
Projet de base de données
Lorsque nous créons notre projet de base de données sur Visual Studio et importons une base de données, cela se terminera comme ceci

Lorsque nous lancerons une compilation sur ce projet, cela générera un fichier dacpac qui inclura toute notre structure

Pipeline Github
Maintenant que notre code est publié sur le référentiel, nous devons maintenant créer une action qui compilera ce projet, générera ce fichier dacpac et le placera quelque part où nous pourrons le télécharger ou l’utiliser pour une autre étape.
name: DacpacGithubActions project build
on:
push:
branches: main
jobs:
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- name: Setup MSBuild
uses: microsoft/setup-msbuild@v1
- name: Navigate to Workspace
run: cd $GITHUB_WORKSPACE
- name: Create Build Directory
run: mkdir artifacts
- name: Build Solution
run: |
msbuild.exe /t:DacpacGithubActions /p:DebugSymbols=false /p:DebugType=None /p:DeployOnBuild=true /p:WebPublishMethod=FileSystem /p:OutDir="../artifacts"
- name: Upload artifact
uses: actions/[email protected]
with:
name: DacpacGithubActionsArtifacts
path: "../artifacts"
Cette action fera un tas de choses, construira la solution et placera le résultat dans le dossier artifacts, créé au préalable, puis elle téléchargera les fichiers de ce dossier vers les artefacts.
Exécution du pipeline
Maintenant, lancez une build, le résultat devrait être le suivant

Si nous téléchargeons réellement l’artefact et examinons le contenu, c’est ce dont nous aurons besoin à l’avenir, lorsque nous mettrons en œuvre une étape de déploiement continu, le fichier dacpac !

#Code
L’intégralité de ce projet est sur Github et vous pouvez le trouver ici !
Si vous avez des problèmes ou des questions, n’hésitez pas à me contacter sur n’importe quel réseau social à @emimontesdeoca (sur Twitter, c’est en fait @emimontesdeocaa avec deux aa à la fin). Vous pouvez également retrouver la plupart de mes réseaux sociaux sur l’en-tête du blog.
J’espère que vous avez aimé le message ! Ouais !