Gere arquivos *.dacpac do projeto VS Database em GitHub Actions
Se você precisa trabalhar com banco de dados e quer fazer desenvolvimento ágil, você tem que ter um fluxo onde sempre que você adicionar ou modificar uma tabela, SP, função, ele irá compilar e gerar o arquivo de implantação do banco de dados.
Já faço essa abordagem há muito tempo, fazemos as alterações no local, comparamos com nosso projeto de banco de dados e então quando fazemos commit e push de nossas alterações, elas geram um arquivo bacpac que irá para o banco de dados.
Elimina todo o trabalho de fazer isso manualmente, o que pode causar um erro humano e em um banco de dados, o que é uma péssima notícia.
Projeto de banco de dados
Quando criamos nosso projeto de banco de dados no Visual Studio e importamos um banco de dados, ficará assim

Quando rodarmos uma compilação neste projeto, ele irá gerar um arquivo dacpac que incluirá toda a nossa estrutura

Pipeline do Github
Agora que temos nosso código publicado no repositório, precisamos criar uma ação que irá compilar esse projeto, gerar esse arquivo dacpac e colocá-lo em algum lugar onde possamos baixar ou usar em outra etapa.
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"
Esta ação fará um monte de coisas, construirá a solução e colocará o resultado na pasta artifacts, criada previamente, e então fará o upload dos arquivos dessa pasta para os artefatos.
Executando o pipeline
Agora vá em frente e acione uma compilação, o resultado deve ser o seguinte

Se realmente baixarmos o artefato e dermos uma olhada no conteúdo, é o que precisamos para o futuro, quando implementarmos uma etapa de implantação contínua, o arquivo dacpac!

Código
Todo esse projeto está no Github e você pode encontrá-lo aqui!
Se você tiver qualquer problema ou dúvida, sinta-se à vontade para entrar em contato comigo em qualquer mídia social em @emimontesdeoca (no Twitter na verdade é @emimontesdeocaa com dois aa no final). Você também pode encontrar a maioria das minhas redes sociais no cabeçalho do blog.
Espero que você tenha gostado da postagem! Cia!