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. 🏆