Pular para o conteúdo principal

victorstein.dev

77/100 Dias de Golang - Mini Servidor de CI/CD – Parte 1 - Visão Geral do Projeto

Table of Contents

# Mini Servidor de CI/CD – Parte 1: Visão Geral do Projeto

Vamos construir nosso mini servidor de CI/CD com Golang! Nesta “série” de quatro artigos, vamos desenvolver um mini servidor de CI/CD utilizando Golang. Nosso objetivo é criar um sistema simples, porém funcional, que permita: Cadastrar pipelines via API. Listar todos os pipelines existentes. Executar pipelines sob demanda.Persistir informações de execução em banco de dados. Validar a aplicação com testes.

Parte 1 – Visão Geral do Projeto (este artigo) Parte 2 – Modelagem e Banco de Dados Parte 3 – API em Go Parte 4 – Testes Parte 5 - Melhorias

Vamos iniciar nosso projeto:

go mod init cicd-server

E vamos criar um webserver bem básico usando gin com uma rota de teste. Esse arquivo vai ficar dentro da pasta cmd/server.

package main

import (
	"github.com/gin-gonic/gin"
	"log"
)

func main() {
	router := gin.Default()

	router.GET("/status", func(c *gin.Context) {
		c.JSON(200, gin.H{"status": "ok"})
	})

	log.Println("Servidor CI/CD rodando na porta 8080...")
	err := router.Run(":8080")
	if err != nil {
		log.Fatalf("Erro ao iniciar servidor: %v", err)
	}
}

Para rodar a aplicação:

go run cmd/server/main.go

Para testar a rota de status, podemos usar o cURL ou acessar via navegador.

curl http://localhost:8080/status