En finir avec les Makefiles en Go avec GoReleaser

Magazine
Marque
GNU/Linux Magazine
Numéro
265
Mois de parution
septembre 2023
Spécialité(s)


Résumé

Quand on travaille avec des langages compilés, construire ou téléverser des artefacts sont des tâches qui peuvent devenir répétitives. On peut automatiser ces tâches avec des outils qui ont fait leurs preuves comme make. Mais il existe un outil qui permet d’automatiser un grand nombre de ces tâches en très peu de temps quand on fait du Golang : GoReleaser. Dans cet article, nous allons expérimenter de manière incrémentale ses fonctionnalités.


Lorsque j’ai débuté mon apprentissage du Golang il y a quelques mois, j’ai rapidement voulu automatiser un certain nombre d’actions répétitives, notamment la compilation. Au cours de mon apprentissage d’autres langages compilés, j’avais déjà utilisé make et des fichiers Makefile pour réaliser ce genre d’actions.

prepare:
    go mod tidy
 
build: prepare
    CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o bin/godraft -ldflags "-X main.Version=$$VERSION" main.go
 
dockerbuild:
    docker build -t zwindler/godraft:$$TAG --build-arg VERSION=$$TAG . && docker build -t zwindler/godraft:latest --build-arg VERSION=$$TAG .
 
dockerpush: dockerbuild
    docker push zwindler/godraft:$$TAG && docker push zwindler/godraft:latest

Cette solution, totalement fonctionnelle, n’est pas nécessairement la plus efficace dans le monde Golang. On peut faire la même chose (et même plus) beaucoup plus rapidement à l’aide d’un outil qui...

Cet article est réservé aux abonnés. Il vous reste 96% à découvrir.
S'abonner à Connect
  • Accédez à tous les contenus de Connect en illimité
  • Découvrez des listes de lecture et des contenus Premium
  • Consultez les nouveaux articles en avant-première
Je m'abonne


Article rédigé par

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous