Esse repositório tem como objetivo principal servir como referência para o desenvolvimento de módulos para o terraform.
- Estrutura inicial para a criação do um módulo do terraform
- Exemplos de como utilizar o terratest para testar o módulo
- Pipeline do Circle CI para a execução de todo o ciclo de desenvolvimento e release de um módulo
Nós utilizamos o Feature Branch Workflow para o desenvolvimento e release dos módulos.
Esse fluxo consiste basicamente na utilização de um único branch principal, onde todos os pull requests são mergeados.
Ao abrir um pull request um pipeline será criado, ele irá executar todos os testes definidos no diretório /test
do repositório. Esses testes devem passar para que seja possível a realização do merge.
Após o merge para o branch principal um novo pipeline será criado, novos testes serão executados e se passarem darão inicio a etapa de release, onde a ferramenta Semantic Release irá analisar todos os commits e automaticamente montar o changelog e criar a tag/release do módulo.
Para rodar os testes localmente é preciso que as ferramentas definidas no arquivo .tool-versions
estejam instaladas. Para facilitar essas instalações vocês podem instalar a ferramenta asdf e rodar o comando make
na raiz do repositório.