Uso de CI/CD em pequenas equipes de desenvolvimento: Aplicação na fábrica de software do IFC Rio do Sul
Arquivos
Data
2024-05-14
Autores
Leandro Ramos Marcelino
Orientadores
Rodrigo Curvêllo, Msc
Coorientadores
Avaliadores
Cristhian Heck, Msc
Marcela Leite, Msc
Marcela Leite, Msc
Título da Revista
ISSN da Revista
Título de Volume
Editor
Resumo
O software assume um papel cada vez mais importante na competitividade das empresas, de forma que grandes e tradicionais organizações sentem que suas abordagens atuais para o gerenciamento de software estão limitando a velocidade de evolução do negócio. Uma vez que os requisitos de um projeto estão definidos, unir e coordenar todo o processo de desenvolvimento, teste e publicação sem perda de qualidade é desafiador. Entregas de software devem ser um processo de baixo risco, frequente, rápido e previsível, contar com fluxos que automatizam o processo de execução de testes, inspeção de qualidade do código, criação e publicação de novas versões é essencial para haver agilidade. A prática de integração contínua, entrega contínua e implantação contínua tem ganho notoriedade, sendo ambas metodologias derivadas do manifesto ágil, buscam garantir que erros sejam detectados com antecedência, que a qualidade do código seja mantida e a construção de novas versões seja rápida. O propósito deste trabalho é desenvolver fluxos de automação com base nos conceitos de integração contínua, entrega contínua e implantação contínua, aplicar em um projeto da FabTec. Neste trabalho são utilizadas as ferramentas Github Actions, Github Packages, SonarQube e Watchtower para construção de todo o fluxo de automações. Para que os objetivos do trabalho sejam atingidos, inicialmente foi realizada uma revisão sistemática da literatura de modo a identificar os conceitos que têm sido utilizados para fluxos de integração, entrega e implantação contínuas, seus benefícios e desafios. Posteriormente, foi realizado o desenvolvimento e aplicação dos fluxos de automação. O desempenho dos fluxos foi avaliado por meio de testes de execução em cenários pré-definidos e pelo acompanhamento de execução na prática após a inserção dos fluxos no projeto. Uma entrevista também foi realizada com os membros do projeto e com profissionais da área de tecnologia para captar suas percepções sobre o uso destes conceitos. Os resultados mostram que a frequência de execução de testes e inspeção de qualidade de software de forma manual é inferior ao necessário e que a automatização da detecção de falhas, inspeção de qualidade e publicação agilizam e aumentam a segurança e qualidade do software.
Descrição
Palavras-chave
Integração Contínua , Entrega Contínua , Implantação Contínua