mirror of
https://github.com/mainflux/mainflux.git
synced 2025-04-26 13:48:53 +08:00
NOISSUE - Fix CI (#1204)
Signed-off-by: dusanb94 <dusan.borovcanin@mainflux.com>
This commit is contained in:
parent
340e685d70
commit
a1643b1e7e
152
scripts/ci.sh
152
scripts/ci.sh
@ -9,101 +9,105 @@ GRPC_VERSION=v1.29.1
|
||||
function version_gt() { test "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1"; }
|
||||
|
||||
update_go() {
|
||||
CURRENT_GO_VERSION=$(go version | sed 's/[^0-9.]*\([0-9.]*\).*/\1/')
|
||||
if version_gt $GO_VERSION $CURRENT_GO_VERSION; then
|
||||
echo "Update go version from $CURRENT_GO_VERSION to $GO_VERSION ..."
|
||||
sudo rm -rf /usr/local/go
|
||||
sudo rm -rf /usr/local/golang
|
||||
sudo rm -rf /usr/bin/go
|
||||
wget https://dl.google.com/go/go$GO_VERSION.linux-amd64.tar.gz
|
||||
tar -xvf go$GO_VERSION.linux-amd64.tar.gz
|
||||
rm go$GO_VERSION.linux-amd64.tar.gz
|
||||
sudo mv go /usr/local
|
||||
export GOROOT=/usr/local/go
|
||||
export GOPATH=/home/runner/go/src
|
||||
export GOBIN=/home/runner/go/bin
|
||||
mkdir -p $GOPATH
|
||||
mkdir $GOBIN
|
||||
# remove other Go version from path
|
||||
export PATH=$PATH:/usr/local/go/bin:$GOBIN
|
||||
fi
|
||||
go version
|
||||
CURRENT_GO_VERSION=$(go version | sed 's/[^0-9.]*\([0-9.]*\).*/\1/')
|
||||
if version_gt $GO_VERSION $CURRENT_GO_VERSION; then
|
||||
echo "Update go version from $CURRENT_GO_VERSION to $GO_VERSION ..."
|
||||
sudo rm -rf /usr/local/go
|
||||
sudo rm -rf /usr/local/golang
|
||||
sudo rm -rf /usr/bin/go
|
||||
wget https://dl.google.com/go/go$GO_VERSION.linux-amd64.tar.gz
|
||||
tar -xvf go$GO_VERSION.linux-amd64.tar.gz
|
||||
rm go$GO_VERSION.linux-amd64.tar.gz
|
||||
sudo mv go /usr/local
|
||||
export GOROOT=/usr/local/go
|
||||
export GOPATH=/home/runner/go/src
|
||||
export GOBIN=/home/runner/go/bin
|
||||
mkdir -p $GOPATH
|
||||
mkdir $GOBIN
|
||||
# remove other Go version from path
|
||||
export PATH=$PATH:/usr/local/go/bin:$GOBIN
|
||||
fi
|
||||
go version
|
||||
}
|
||||
|
||||
setup_protoc() {
|
||||
echo "Setting up protoc..."
|
||||
PROTOC_ZIP=protoc-$PROTOC_VERSION-linux-x86_64.zip
|
||||
curl -0L https://github.com/google/protobuf/releases/download/v$PROTOC_VERSION/$PROTOC_ZIP -o $PROTOC_ZIP
|
||||
unzip -o $PROTOC_ZIP -d protoc3
|
||||
sudo mv protoc3/bin/* /usr/local/bin/
|
||||
sudo mv protoc3/include/* /usr/local/include/
|
||||
rm -f PROTOC_ZIP
|
||||
# Execute `go get` for protoc dependencies outside of project dir.
|
||||
cd ..
|
||||
export GO111MODULE=on
|
||||
echo "Setting up protoc..."
|
||||
PROTOC_ZIP=protoc-$PROTOC_VERSION-linux-x86_64.zip
|
||||
curl -0L https://github.com/google/protobuf/releases/download/v$PROTOC_VERSION/$PROTOC_ZIP -o $PROTOC_ZIP
|
||||
unzip -o $PROTOC_ZIP -d protoc3
|
||||
sudo mv protoc3/bin/* /usr/local/bin/
|
||||
sudo mv protoc3/include/* /usr/local/include/
|
||||
rm -f PROTOC_ZIP
|
||||
|
||||
go get -u github.com/golang/protobuf/protoc-gen-go@$PROTOC_GEN_VERSION \
|
||||
github.com/gogo/protobuf/protoc-gen-gofast@$PROTOC_GOFAST_VERSION \
|
||||
google.golang.org/grpc@$GRPC_VERSION
|
||||
go get -u github.com/golang/protobuf/protoc-gen-go@$PROTOC_GEN_VERSION \
|
||||
github.com/gogo/protobuf/protoc-gen-gofast@$PROTOC_GOFAST_VERSION \
|
||||
google.golang.org/grpc@$GRPC_VERSION
|
||||
|
||||
export PATH=$PATH:/usr/local/bin/protoc
|
||||
export PATH=$PATH:/usr/local/bin/protoc
|
||||
cd mainflux
|
||||
}
|
||||
|
||||
setup_mf() {
|
||||
echo "Setting up Mainflux..."
|
||||
for p in $(ls *.pb.go); do
|
||||
mv $p $p.tmp
|
||||
done
|
||||
for p in $(ls pkg/*/*.pb.go); do
|
||||
mv $p $p.tmp
|
||||
done
|
||||
make proto
|
||||
for p in $(ls *.pb.go); do
|
||||
if ! cmp -s $p $p.tmp; then
|
||||
echo "Proto file and generated Go file $p are out of sync!"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
for p in $(ls pkg/*/*.pb.go); do
|
||||
if ! cmp -s $p $p.tmp; then
|
||||
echo "Proto file and generated Go file $p are out of sync!"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
make -j$NPROC
|
||||
echo "Setting up Mainflux..."
|
||||
for p in $(ls *.pb.go); do
|
||||
mv $p $p.tmp
|
||||
done
|
||||
for p in $(ls pkg/*/*.pb.go); do
|
||||
mv $p $p.tmp
|
||||
done
|
||||
make proto
|
||||
for p in $(ls *.pb.go); do
|
||||
if ! cmp -s $p $p.tmp; then
|
||||
echo "Proto file and generated Go file $p are out of sync!"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
for p in $(ls pkg/*/*.pb.go); do
|
||||
if ! cmp -s $p $p.tmp; then
|
||||
echo "Proto file and generated Go file $p are out of sync!"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
make -j$NPROC
|
||||
}
|
||||
|
||||
setup_lint() {
|
||||
# binary will be $(go env GOBIN)/golangci-lint
|
||||
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOBIN) v1.24.0
|
||||
# binary will be $(go env GOBIN)/golangci-lint
|
||||
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOBIN) v1.24.0
|
||||
|
||||
}
|
||||
|
||||
setup() {
|
||||
echo "Setting up..."
|
||||
update_go
|
||||
setup_protoc
|
||||
setup_mf
|
||||
setup_lint
|
||||
echo "Setting up..."
|
||||
update_go
|
||||
setup_protoc
|
||||
setup_mf
|
||||
setup_lint
|
||||
}
|
||||
|
||||
run_test() {
|
||||
echo "Running lint..."
|
||||
golangci-lint run --no-config --disable-all --enable=golint
|
||||
echo "Running tests..."
|
||||
echo "" > coverage.txt
|
||||
for d in $(go list ./... | grep -v 'vendor\|cmd'); do
|
||||
GOCACHE=off
|
||||
go test -mod=vendor -v -race -tags test -coverprofile=profile.out -covermode=atomic $d
|
||||
if [ -f profile.out ]; then
|
||||
cat profile.out >> coverage.txt
|
||||
rm profile.out
|
||||
fi
|
||||
done
|
||||
echo "Running lint..."
|
||||
golangci-lint run --no-config --disable-all --enable=golint
|
||||
echo "Running tests..."
|
||||
echo "" > coverage.txt
|
||||
for d in $(go list ./... | grep -v 'vendor\|cmd'); do
|
||||
GOCACHE=off
|
||||
go test -mod=vendor -v -race -tags test -coverprofile=profile.out -covermode=atomic $d
|
||||
if [ -f profile.out ]; then
|
||||
cat profile.out >> coverage.txt
|
||||
rm profile.out
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
push() {
|
||||
if test -n "$BRANCH_NAME" && test "$BRANCH_NAME" = "master"; then
|
||||
echo "Pushing Docker images..."
|
||||
make -j$NPROC latest
|
||||
fi
|
||||
if test -n "$BRANCH_NAME" && test "$BRANCH_NAME" = "master"; then
|
||||
echo "Pushing Docker images..."
|
||||
make -j$NPROC latest
|
||||
fi
|
||||
}
|
||||
|
||||
set -e
|
||||
|
Loading…
x
Reference in New Issue
Block a user