Le savoir n'a guère d'intérêt s'il n'est pas partagé.

Dans cet article, je vais vous expliquer simplement comment compiler un simple code Go par le biais d'une pipeline Gitlab. 😇

Avant de commencer, vous trouverez tout le projet et les différents fichiers ici. 🤓

On va donc commencer par créer un dossier src dans lequel sera présent le code source Go (golang) suivant:

package main

import "fmt"

func main() {
	fmt.Println("Hello Gitlab CI!")
}
src/main.go

Vous devez créer un dossier nommé builds à la racine du projet, ce répertoire contiendra les différents buils générés. 🤠

Ensuite, à la racine du projet, on va créer un fichier .gitlab-ci.yml avec le contenu suivant:

variables:
  GO_VERSION: "1.15"
  PROJECT_NAME: "hello-world-go"

stages:
  - build

build:
  stage: build
  image: golang:${GO_VERSION}-alpine
  
  before_script:
    - echo "before script! 🐱‍👤"

  script: |
    # Build binary
    GOOS=linux GOARCH=amd64 go build -o builds/${PROJECT_NAME} src/main.go
    # Execute the binary
    ./builds/${PROJECT_NAME}
.gitlab-ci.yml

Petite explication 🚀:

  • L'image utilisée par Gitlab est une image docker (provenant du Docker Hub), ici l'image est golang:1.15-alpine.
  • Avant l'exécution du script, les commandes décrites dans la section before_script sont appelées. Ca peut être très pratique dans le cas où on doit récupérer des dépendances par exemple avec la commande go get.
  • Le build sera créé puis exécuté.

Ne reste plus qu'à pusher le code sur Gitlab et constater le résultat!

Vous savez maintenant comment compiler simplement un code Go (golang) avec une pipeline toute simple Gitlab. Un prochain article viendra pour expliquer, comment le faire avec un projet avec des dépendances. 🏆