Como atualizar a versão do Go de forma simples e rápida usando Makefile

Como usar Makefile para automatizar a atualização da versão do Go, simplificando o processo com um script eficiente e fácil de usar.

Recentemente, em um projeto pessoal utilizando Go, precisei atualizar para uma versão mais recente. Não encontrei online uma maneira fácil e rápida para realizar esse update de forma eficiente e replicável.

Automatizando tarefas com Makefile no Go

Uma prática comum no desenvolvimento em Go é o uso do arquivo Makefile para automatizar a execução de comandos complexos. Por exemplo, ao invés de executar manualmente o comando:

go run main.go

Podemos simplificar usando Makefile, tornando a execução mais rápida no dia a dia:

make run

Criando um Makefile

Para começar, crie um arquivo chamado Makefile na raiz do seu projeto e instale o make (certifique-se de instalar a versão correta para o seu sistema operacional). Adicione as seguintes linhas no Makefile:

run:
    go run main.go

Agora quando você executar o comando make run na raiz do projeto, seu código será executado.

Atualizando a versão do Go com um script

Com o básico do Makefile entendido, podemos criar um comando que atualiza a versão do Go de forma simples e eficiente. Este comando seguirá os passos:

  1. Verificar a versão atual instalada (necessário já ter o Go instalado).
  2. Solicitar a versão desejada.
  3. Se as versões forem diferentes, fazer o download da nova versão.
  4. Extrair o arquivo baixado.
  5. Atualizar o PATH com a nova versão do Go.

Nota: O script abaixo foi testado no WSL2 com Ubuntu 22.04.

update-go:
	@desiredVersion="go1.22.5"; \
	currentVersion=$$(go version | grep -oE '[0-9]+\.[0-9]+\.[0-9]+'); \
	echo "Current version: $$currentVersion"; \
	if [ "$$desiredVersion" != "$$currentVersion" ]; then \
		echo "Installing $$desiredVersion..."; \
		sudo rm -rf /usr/local/go; \
		wget --quiet https://go.dev/dl/$$desiredVersion.linux-amd64.tar.gz; \
		sudo tar -C /usr/local -xzf $$desiredVersion.linux-amd64.tar.gz; \
		rm $$desiredVersion.linux-amd64.tar.gz; \
		export PATH=$HOME/go/bin:/usr/local/go/bin:$PATH; \
		echo "Done!"; \
		go version; \
	else \
		echo "Go $$desiredVersion is already installed. Skipping..."; \
	fi

Conclusão

Agora, sempre que você desejar atualizar a versão do Go, basta alterar o valor da variável desiredVersion e executar o comando make update-go. Isso torna o processo de atualização muito mais eficiente e fácil de gerenciar.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *