DEV Community

Cover image for Flyway & Azure DevOps : Criando Release Pipeline
Higor Barbosa
Higor Barbosa

Posted on

Flyway & Azure DevOps : Criando Release Pipeline

E vamos, enfim, criar o nosso Deploy continuo utilizando o Azure DevOps.

Se você não tem uma conta ainda, pode criar acessando esse link

Tópicos

Repositório GIT

Vamos criar o nosso projeto usando repositório GIT do serviço Repos do Azure DevOps.

Alt Text

E vamos ir em *Repos > Files *.

Alt Text

Podemos iniciar nosso repositório.

Alt Text

E criar uma nova pasta.

Alt Text

Vamos chamá-la de scripts e vamos criar o arquivo V2__SecoundScript.sql.

Alt Text

E vamos adicionar o script abaixo no arquivo.

INSERT INTO Customers  (name,Priority ) VALUES ('Mr. T', 1);
INSERT INTO Customers  (name,Priority ) VALUES ('Bob', 5);
Enter fullscreen mode Exit fullscreen mode

E podemos commitar na nossa branch master.

Alt Text

E agora, podemos adicionar ao nosso pipeline.

Release Pipeline

Vamos ir em Pipelines > Releases.

Alt Text

E vamos ir em New Pipeline.

Naã vamos selecionar um template. Usaremos o empty job.

Alt Text

Vamos adicionar o nome de Flyway Info no primeiro stage.

E adicionar nosso artefato.

Alt Text

Vamos selecionar a opção Azure Repos GIT, o nosso projeto, repositório, a branch master e adicionar o nosso alias ao artefato.

Alt Text

Podemos agora editar o nosso stage.

Alt Text

Extensão do Flyway no Marketplace

Vamos adicionar uma nova tarefa e procurar por flyway.

E podemos ver a extensão abaixo. Precisamos instalar ela. Vamos ir em Get it free para adicionar ela a nossa organização do Azure DevOps.

Alt Text

E aqui podemos conferir que ainda está em preview. Mas vamos instalar ela. Get it free.

Alt Text

Vamos selecionar a nossa organização e clicar em Install.
Caso você utilize a versão on-premise do Azure DevOps, pode baixar a extensão em download.

Alt Text

Podemos atualizar a nossa lista de tarefas do agent job e vemos 2 tarefas disponíveis: Flyway CLI e Flyway Installer.

Vamos incluir as duas no nosso agente.

Primeiro a tarefa Installer, onde devemos indicar a versão que queremos do nosso Flyway.

Alt Text

E depois, a tarefa CLI, onde vamos selecionar o comando info e vou indicar 3 variáveis a nossa tarefa: JDBC, password e user.

Alt Text

E vamos ir na aba Variables e criar as nossas variáveis.

Alt Text

E estamos prontos para rodar. Vamos alterar o nome do nosso pipeline, salvar e criar o nosso primeiro release.

Alt Text

Alt Text

E vamos aguardar a execução.

Alt Text

E criou o release com sucesso!

Vamos ir em Logs.

Alt Text

E vamos ir no log do flyway info.

o Flyway nos avisou que o primeiro script foi perdido e o segundo esta pendente para execução.

Alt Text

Vamos fechar o log, editar o Release Pipeline e ativar a trigger de Continuous Deployment.

Alt Text

E habilitar a trigger, incluindo a branch master.

Alt Text

Vamos salvar e ir no Repos > Files. Vamos fazer upload do nosso primeiro script na pasta scripts.

Alt Text

E commitar ele.
Alt Text

Vamos ir em Pipelines > Release e veja que o nosso segundo release ja foi iniciado.

Alt Text

Depois de executa-lo, vamos novamente no log e verificar flyway info.

Alt Text

E agora sim. O flyway identificou que o primeiro script rodou e estamos apenas pendente do segundo script.

Vamos editar o nome do nosso estagio.

Alt Text

E também editar o agent job do stage.

Alt Text

Migração pelo Azure DevOps

Podemos clonar a tarefas flyway info e alterar o command para migrate, ficando como a imagem abaixo.

Alt Text

E agora, podemos salvar e gerar mais um release.

E gerou com sucesso. Podemos ir no Log e na tarefa flyway migrate.

Alt Text

E vemos que executou com sucesso o nosso segundo script.

Alt Text

E podemos conferir no Query Editor no nosso Azure SQL Database.

SELECT TOP (1000) * FROM [dbo].[Customers]
Enter fullscreen mode Exit fullscreen mode

E lá está os 2 Customers adicionado no segundo script executado no Flyway diretamente do Release Pipeline do Azure DevOps.

Alt Text

:)

Top comments (2)

Collapse
 
sgsilvathais profile image
Thais Siqueira

Como eu utilizaria o comando baseline para o caso de já ter um bd criado?

Collapse
 
higor profile image
Higor Barbosa

Oi, não sei se entendi sua pergunta. Mas o baseline tu pode chamar com flyway baseline.

Não tem muito segredo não.

flywaydb.org/documentation/usage/c...