Gere arquivos *.dacpac do projeto VS Database em GitHub Actions

· 2 min de leitura

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!