mirror of
https://github.com/fnproject/fn.git
synced 2022-10-28 21:29:17 +03:00
* Use retry func while trying to ping SQL datastore
- implements retry func specifically for SQL datastore ping
- fmt fixes
- using sqlx.Db.PingContext instead of sqlx.Db.Ping
- propogate context to SQL datastore
* Use alpine images to make tests take less time
* use PG alpine
* use Minio alpine
* no official alpine distro for MySQL, uhhh :(
* install swagger tool instead of docker image
* use retry func to confirm that datastore is okay before running tests
* Store swagger tool at Fn during CI time
somehow it's a problem to put binary to ${GOPATH}/bin
* Adjust swagger tool reference path
* Revert minio image
* Use amd64/alpine-based swagger tool image for API spec validation
* Cleanup
56 lines
1.8 KiB
Bash
Executable File
56 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
set -exo pipefail
|
|
|
|
source ./helpers.sh
|
|
|
|
remove_containers
|
|
|
|
case "$1" in
|
|
"sqlite3" )
|
|
rm -fr /tmp/fn_integration_tests.db
|
|
touch /tmp/fn_integration_tests.db
|
|
export FN_DB_URL="sqlite3:///tmp/fn_integration_tests.db"
|
|
;;
|
|
|
|
"mysql" )
|
|
DB_CONTAINER="func-mysql-test"
|
|
docker rm -fv ${DB_CONTAINER} || echo No prev mysql test db container
|
|
docker run --name ${DB_CONTAINER} -p 3306:3306 -e MYSQL_DATABASE=funcs -e MYSQL_ROOT_PASSWORD=root -d mysql
|
|
MYSQL_HOST=`host ${DB_CONTAINER}`
|
|
MYSQL_PORT=3306
|
|
export FN_DB_URL="mysql://root:root@tcp(${MYSQL_HOST}:${MYSQL_PORT})/funcs"
|
|
|
|
;;
|
|
|
|
"postgres" )
|
|
DB_CONTAINER="func-postgres-test"
|
|
docker rm -fv ${DB_CONTAINER} || echo No prev test db container
|
|
docker run --name ${DB_CONTAINER} -e "POSTGRES_DB=funcs" -e "POSTGRES_PASSWORD=root" -p 5432:5432 -d postgres:9.3-alpine
|
|
POSTGRES_HOST=`host ${DB_CONTAINER}`
|
|
POSTGRES_PORT=5432
|
|
export FN_DB_URL="postgres://postgres:root@${POSTGRES_HOST}:${POSTGRES_PORT}/funcs?sslmode=disable"
|
|
|
|
;;
|
|
esac
|
|
|
|
#test test/fn-api-tests/fn-api-tests.test
|
|
#status=`echo $?`
|
|
#rebuild="${3:-1}"
|
|
#circleci=`echo ${CIRCLECI}`
|
|
#cd test/fn-api-tests
|
|
#if [[ $status -ne 0 ]] || [[ $rebuild -ne 0 ]] ; then
|
|
# if [[ $circleci == "true" ]]; then
|
|
# # dirty things to make CI pass
|
|
# ls -lah /usr/local/go/pkg/linux_amd64/runtime
|
|
# sudo chown -R `whoami`:root /usr/local/go
|
|
# sudo chmod -R 777 /usr/local/go/pkg/linux_amd64
|
|
# ls -lah /usr/local/go/pkg/linux_amd64/runtime
|
|
# fi
|
|
# pwd
|
|
# go test -i -a -o fn-api-tests.test
|
|
#fi
|
|
#pwd
|
|
#./fn-api-tests.test -test.v -test.parallel ${2:-1} ./...; cd ../../
|
|
cd test/fn-api-tests && FN_API_URL="http://localhost:8080" FN_DB_URL=${FN_DB_URL} go test -v -parallel ${2:-1} ./...; cd ../../
|
|
|
|
remove_containers |