86 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| language: go
 | |
| 
 | |
| go:
 | |
|   - "1.14.x"
 | |
| services:
 | |
|   - redis-server
 | |
|   - mysql
 | |
|   - postgresql
 | |
|   - memcached
 | |
|   - docker
 | |
| env:
 | |
|   global:
 | |
|     - GO_REPO_FULLNAME="github.com/beego/beego/v2"
 | |
|   matrix:
 | |
|     - ORM_DRIVER=sqlite3   ORM_SOURCE=$TRAVIS_BUILD_DIR/orm_test.db
 | |
|     - ORM_DRIVER=postgres ORM_SOURCE="user=postgres dbname=orm_test sslmode=disable"
 | |
|     - ORM_DRIVER=mysql export ORM_SOURCE="root:@/orm_test?charset=utf8"
 | |
| before_install:
 | |
|   - export CODECOV_TOKEN="4f4bc484-32a8-43b7-9f48-20966bd48ceb"
 | |
|   # link the local repo with ${GOPATH}/src/<namespace>/<repo>
 | |
|   - GO_REPO_NAMESPACE=${GO_REPO_FULLNAME%/*}
 | |
|   # relies on GOPATH to contain only one directory...
 | |
|   - mkdir -p ${GOPATH}/src/${GO_REPO_NAMESPACE}
 | |
|   - ln -sv ${TRAVIS_BUILD_DIR} ${GOPATH}/src/${GO_REPO_FULLNAME}
 | |
|   - cd ${GOPATH}/src/${GO_REPO_FULLNAME}
 | |
|   # get and build ssdb
 | |
|   - git clone git://github.com/ideawu/ssdb.git
 | |
|   - cd ssdb
 | |
|   - make
 | |
|   - cd ..
 | |
|   #  - prepare etcd
 | |
|   #  - prepare for etcd unit tests
 | |
|   - rm -rf /tmp/etcd-data.tmp
 | |
|   - mkdir -p /tmp/etcd-data.tmp
 | |
|   - docker rmi gcr.io/etcd-development/etcd:v3.3.25 || true &&
 | |
|     docker run -d
 | |
|     -p 2379:2379
 | |
|     -p 2380:2380
 | |
|     --mount type=bind,source=/tmp/etcd-data.tmp,destination=/etcd-data
 | |
|     --name etcd-gcr-v3.3.25
 | |
|     gcr.io/etcd-development/etcd:v3.3.25
 | |
|     /usr/local/bin/etcd
 | |
|     --name s1
 | |
|     --data-dir /etcd-data
 | |
|     --listen-client-urls http://0.0.0.0:2379
 | |
|     --advertise-client-urls http://0.0.0.0:2379
 | |
|     --listen-peer-urls http://0.0.0.0:2380
 | |
|     --initial-advertise-peer-urls http://0.0.0.0:2380
 | |
|     --initial-cluster s1=http://0.0.0.0:2380
 | |
|     --initial-cluster-token tkn
 | |
|     --initial-cluster-state new
 | |
|   - docker exec etcd-gcr-v3.3.25 /bin/sh -c "ETCDCTL_API=3 /usr/local/bin/etcdctl put current.float 1.23"
 | |
|   - docker exec etcd-gcr-v3.3.25 /bin/sh -c "ETCDCTL_API=3 /usr/local/bin/etcdctl put current.bool true"
 | |
|   - docker exec etcd-gcr-v3.3.25 /bin/sh -c "ETCDCTL_API=3 /usr/local/bin/etcdctl put current.int 11"
 | |
|   - docker exec etcd-gcr-v3.3.25 /bin/sh -c "ETCDCTL_API=3 /usr/local/bin/etcdctl put current.string hello"
 | |
|   - docker exec etcd-gcr-v3.3.25 /bin/sh -c "ETCDCTL_API=3 /usr/local/bin/etcdctl put current.serialize.name test"
 | |
|   - docker exec etcd-gcr-v3.3.25 /bin/sh -c "ETCDCTL_API=3 /usr/local/bin/etcdctl put sub.sub.key1 sub.sub.key"
 | |
| install:
 | |
|   - go get -u honnef.co/go/tools/cmd/staticcheck
 | |
|   - go get -u github.com/mdempsky/unconvert
 | |
|   - go get -u github.com/gordonklaus/ineffassign
 | |
| before_script:
 | |
| 
 | |
|   #  -
 | |
|   - psql --version
 | |
|   #  - prepare for orm unit tests
 | |
|   - sh -c "if [ '$ORM_DRIVER' = 'postgres' ]; then psql -c 'create database orm_test;' -U postgres; fi"
 | |
|   - sh -c "if [ '$ORM_DRIVER' = 'mysql' ]; then mysql -u root -e 'create database orm_test;'; fi"
 | |
|   - sh -c "if [ '$ORM_DRIVER' = 'sqlite' ]; then touch $TRAVIS_BUILD_DIR/orm_test.db; fi"
 | |
|   - sh -c "go list ./... | grep -v vendor | xargs go vet -v"
 | |
|   - mkdir -p res/var
 | |
|   - ./ssdb/ssdb-server ./ssdb/ssdb.conf -d
 | |
| after_script:
 | |
|   - killall -w ssdb-server
 | |
|   - rm -rf ./res/var/*
 | |
| after_success:
 | |
|   - bash <(curl -s https://codecov.io/bash)
 | |
| script:
 | |
|   - GO111MODULE=on go test -coverprofile=coverage.txt -covermode=atomic ./...
 | |
|   - staticcheck -show-ignored -checks "-ST1017,-U1000,-ST1005,-S1034,-S1012,-SA4006,-SA6005,-SA1019,-SA1024" ./
 | |
|   - unconvert $(go list ./... | grep -v /vendor/)
 | |
|   - ineffassign .
 | |
|   - find . ! \( -path './vendor' -prune \) -type f -name '*.go' -print0 | xargs -0 gofmt -l -s
 | |
| addons:
 | |
|   postgresql: "9.6"
 |