1
0
mirror of https://github.com/mainflux/mainflux.git synced 2025-04-24 13:48:49 +08:00
Ivan Milošević b53979104c NOISSUE - Remove installing non-existent package in ci (#758)
* Remove installing non-existent  package from ci

Signed-off-by: Ivan Milošević <iva@blokovi.com>

* remove branch master condition in ci.sh to test it

Signed-off-by: Ivan Milošević <iva@blokovi.com>

* fix syntax error

Signed-off-by: Ivan Milošević <iva@blokovi.com>

* update apt

Signed-off-by: Ivan Milošević <iva@blokovi.com>

* build arm images for latest release
push ui and mqtt arm images
install only qemu-user-static

Signed-off-by: Ivan Milošević <iva@blokovi.com>

* clean docker after pushing amd64 images

Signed-off-by: Ivan Milošević <iva@blokovi.com>

* installing all qemu app

Signed-off-by: Ivan Milošević <iva@blokovi.com>

* remove docker images before building ui and mqtt arm-images

Signed-off-by: Ivan Milošević <iva@blokovi.com>

* prune dockers and test only arm build

Signed-off-by: Ivan Milošević <iva@blokovi.com>

* fix syntax error

Signed-off-by: Ivan Milošević <iva@blokovi.com>

* fix moving qemu-arm-static

Signed-off-by: Ivan Milošević <iva@blokovi.com>

* installing qemu with apt-get

Signed-off-by: Ivan Milošević <iva@blokovi.com>

* add another apt-get update

Signed-off-by: Ivan Milošević <iva@blokovi.com>

* apt install one liner

Signed-off-by: Ivan Milošević <iva@blokovi.com>

* testing ci script

Signed-off-by: Ivan Milošević <iva@blokovi.com>

* After installing qemu, get appropriate version

Signed-off-by: Ivan Milošević <iva@blokovi.com>

* Test ci without amd64 dockers

Signed-off-by: Ivan Milošević <iva@blokovi.com>

* remove tests from ci for test purpose

Signed-off-by: Ivan Milošević <iva@blokovi.com>

* Uncomment commands

Signed-off-by: Ivan Milošević <iva@blokovi.com>

* Remove whitespace and change order of building images

Signed-off-by: Ivan Milošević <iva@blokovi.com>
2019-06-12 21:11:45 +02:00

91 lines
2.3 KiB
Bash
Executable File

# This script contains commands to be executed by the CI tool.
NPROC=$(nproc)
setup_protoc() {
echo "Setting up protoc..."
PROTOC_ZIP=protoc-3.6.1-linux-x86_64.zip
curl -0L https://github.com/google/protobuf/releases/download/v3.6.1/$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 \
github.com/gogo/protobuf/protoc-gen-gofast \
google.golang.org/grpc
git -C $GOPATH/src/github.com/golang/protobuf/protoc-gen-go checkout v1.3.1
go install github.com/golang/protobuf/protoc-gen-go
git -C $GOPATH/src/github.com/gogo/protobuf/protoc-gen-gofast checkout v1.2.1
go install github.com/gogo/protobuf/protoc-gen-gofast
git -C $GOPATH/src/google.golang.org/grpc checkout v1.20.1
go install google.golang.org/grpc
export PATH=$PATH:/usr/local/bin/protoc
}
setup_mf() {
echo "Setting up Mainflux..."
MF_PATH=$GOPATH/src/github.com/mainflux/mainflux
if test $PWD != $MF_PATH; then
mkdir -p $MF_PATH
mv ./* $MF_PATH
fi
cd $MF_PATH
for p in $(ls *.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
make -j$NPROC
}
setup() {
echo "Setting up..."
setup_protoc
setup_mf
}
run_test() {
echo "Running tests..."
echo "" > coverage.txt;
for d in $(go list ./... | grep -v 'vendor\|cmd'); do
GOCACHE=off
go test -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
}
install_qemu() {
echo "Installing qemu..."
MF_PATH=$GOPATH/src/github.com/mainflux/mainflux
cd $MF_PATH
sudo apt-get update && sudo apt-get -y install qemu-user-static
wget https://github.com/multiarch/qemu-user-static/releases/download/v2.11.1/qemu-arm-static.tar.gz && tar -xzf qemu-arm-static.tar.gz && rm qemu-arm-static.tar.gz
sudo cp qemu-arm-static /usr/bin/
}
push() {
if test -n "$BRANCH_NAME" && test "$BRANCH_NAME" = "master"; then
echo "Pushing Docker images..."
make -j$NPROC latest
docker system prune -a -f
install_qemu
make latest_arm
fi
}
set -e
setup
run_test
push