#!/bin/bash -x set -euo pipefail DIRECTORY = $WORKSPACE"/"$DIRECTORY cd $DIRECTORY # Read desired Go version from go.mod file desired_version=$(grep '^go' go.mod | grep -Eo '[0-9]\.[0-9]+') # Check installed Go version installed_version=$(go version | awk '{print $3}' | sed 's/go//') if [ "$desired_version" != "$installed_version" ]; then echo "Desired Go version: $desired_version" echo "Installed Go version: $installed_version" # Remove existing Go installation sudo rm -fr /usr/local/go echo "Download go $desired_version" curl -L "https://go.dev/dl/go$desired_version.linux-amd64.tar.gz" | sudo tar -C /usr/local -zxf - export PATH=$PATH:/usr/local/go/bin else echo "Go version is up to date: $desired_version" fi echo "Download project deps" go mod tidy echo "Force build" go build -a -v echo "Run tests" go test ./... -json