uBrowserSync/.gitlab-ci.yml

73 lines
1.6 KiB
YAML
Raw Permalink Normal View History

2021-05-15 10:48:04 +00:00
image: golang:latest
variables:
REPO_NAME: gitlab.com/mporrato/uBrowserSync
2021-05-15 19:23:00 +00:00
CMDS: "ubsserver"
PLATFORMS: "linux/amd64 linux/arm64 linux/armv6"
2021-05-15 10:48:04 +00:00
before_script:
- mkdir -p $GOPATH/src/$(dirname $REPO_NAME)
- ln -svf $CI_PROJECT_DIR $GOPATH/src/$REPO_NAME
2021-05-15 19:23:00 +00:00
- mkdir -p $CI_PROJECT_DIR/bin
2021-05-15 10:48:04 +00:00
- cd $GOPATH/src/$REPO_NAME
2021-05-15 19:23:00 +00:00
- go version
2021-05-15 10:48:04 +00:00
stages:
2021-05-15 19:23:00 +00:00
- lint
2021-05-15 10:48:04 +00:00
- test
- build
2021-05-15 19:23:00 +00:00
go-vet:
stage: lint
2021-05-15 10:48:04 +00:00
script:
- go vet $(go list ./... | grep -v /vendor/)
2021-05-15 19:23:00 +00:00
go-test:
stage: test
script:
2021-05-15 10:48:04 +00:00
- go test -race $(go list ./... | grep -v /vendor/)
2021-05-15 19:23:00 +00:00
go-build:
2021-05-15 10:48:04 +00:00
stage: build
2021-05-15 19:23:00 +00:00
script: |
for platform in $PLATFORMS ; do
IFS="/" read GOOS GOARCH <<< "$platform"
case $GOARCH in
armv*)
GOARM=$(tr -cd "0-9" <<< $GOARCH)
GOARCH=arm
SUFFIX="$GOOS-${GOARCH}v$GOARM"
2021-05-16 08:01:14 +00:00
export GOARM
2021-05-15 19:23:00 +00:00
;;
*)
SUFFIX="$GOOS-$GOARCH"
2021-05-16 08:01:14 +00:00
unset GOARM
2021-05-15 19:23:00 +00:00
;;
esac
export GOOS GOARCH
for bin in $CMDS ; do
2021-05-16 08:01:14 +00:00
echo "BUILDING $bin for $platform"
2021-05-15 19:23:00 +00:00
go build -ldflags="-s -w" -trimpath -o bin/$bin-$SUFFIX ./cmd/$bin
done
done
2021-05-15 10:48:04 +00:00
artifacts:
paths:
2021-05-15 19:23:00 +00:00
- bin/
2021-05-18 09:50:32 +00:00
docker-build:
image: docker:20
stage: build
services:
- docker:20-dind
variables:
2021-05-21 23:05:35 +00:00
IMAGE_NAME: $CI_REGISTRY_IMAGE/ubsserver
2021-05-18 09:50:32 +00:00
DOCKER_TLS_CERTDIR: "/certs"
before_script:
- docker version
script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker build -f ./docker/ubsserver/Dockerfile -t $IMAGE_NAME:$CI_COMMIT_REF_NAME .
- docker tag $IMAGE_NAME:$CI_COMMIT_REF_NAME $IMAGE_NAME:latest
2021-05-21 23:05:35 +00:00
- docker push $IMAGE_NAME --all-tags
only:
- tags