From 6df602fa6bfb0ade75225f65b35026f8c55fc98c Mon Sep 17 00:00:00 2001 From: Maurizio Porrato Date: Sat, 15 May 2021 20:23:00 +0100 Subject: [PATCH] Improve CI/CD setup --- .gitlab-ci.yml | 40 ++++++++++++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 536dfc3..d346e2d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,28 +2,52 @@ image: golang:latest variables: REPO_NAME: gitlab.com/mporrato/uBrowserSync + CMDS: "ubsserver" + PLATFORMS: "linux/amd64 linux/arm64 linux/armv6" before_script: - mkdir -p $GOPATH/src/$(dirname $REPO_NAME) - ln -svf $CI_PROJECT_DIR $GOPATH/src/$REPO_NAME + - mkdir -p $CI_PROJECT_DIR/bin - cd $GOPATH/src/$REPO_NAME + - go version stages: + - lint - test - build -format: +go-vet: + stage: lint + script: + - go vet $(go list ./... | grep -v /vendor/) + +go-test: stage: test script: - - go fmt $(go list ./... | grep -v /vendor/) - - go vet $(go list ./... | grep -v /vendor/) - go test -race $(go list ./... | grep -v /vendor/) -compile: +go-build: stage: build - script: - - mkdir -p $CI_PROJECT_DIR/bin - - go build -o $CI_PROJECT_DIR/bin/ubsserver -v -ldflags="-s -w" -trimpath ./cmd/ubsserver + script: | + for platform in $PLATFORMS ; do + echo "BUILDING $platform" + IFS="/" read GOOS GOARCH <<< "$platform" + case $GOARCH in + armv*) + GOARM=$(tr -cd "0-9" <<< $GOARCH) + GOARCH=arm + SUFFIX="$GOOS-${GOARCH}v$GOARM" + ;; + *) + SUFFIX="$GOOS-$GOARCH" + ;; + esac + export GOOS GOARCH + for bin in $CMDS ; do + go build -ldflags="-s -w" -trimpath -o bin/$bin-$SUFFIX ./cmd/$bin + done + done artifacts: paths: - - bin/ubsserver \ No newline at end of file + - bin/