github.com/Ali-iotechsys/sqlboiler/v4@v4.0.0-20221208124957-6aec9a5f1f71/.circleci/config.yml (about) 1 version: 2 2 jobs: 3 build: 4 working_directory: /root 5 docker: 6 - image: aarondl0/sqlboiler-test:v3 7 8 - image: postgres:9.6 9 environment: 10 POSTGRES_PASSWORD: psqlpassword 11 12 - image: mysql:5.7 13 environment: 14 MYSQL_ROOT_PASSWORD: mysqlpassword 15 16 - image: microsoft/mssql-server-linux:2017-GDR 17 environment: 18 ACCEPT_EULA: 'Y' 19 SA_PASSWORD: 'Sqlboiler@1234' 20 21 environment: 22 GOPATH: /go 23 ROOTPATH: /go/src/github.com/volatiletech/sqlboiler 24 25 steps: 26 - run: 27 name: 'Make GOPATH' 28 command: mkdir -p $ROOTPATH 29 30 - checkout: 31 name: 'Checkout' 32 path: /go/src/github.com/volatiletech/sqlboiler 33 34 # Workaround to allow the use of the circleci local cli. 35 - run: 36 name: 'Checkout (local)' 37 command: | 38 if [ ! -z "$ROOTPATH" ]; then rmdir $ROOTPATH; ln -s /root $ROOTPATH; fi 39 40 - run: 41 name: 'Add PSQL Credentials' 42 command: | 43 echo "*:*:*:*:psqlpassword" > /root/.pgpass 44 chmod 600 /root/.pgpass 45 46 - run: 47 name: 'Add MySQL Credentials' 48 command: | 49 echo -e "[client]\nuser = root\npassword = mysqlpassword\nhost = localhost\nprotocol = tcp" > /root/.my.cnf 50 chmod 600 /root/.my.cnf 51 52 - run: 53 name: 'Wait for PSQL' 54 command: > 55 c=0; 56 for i in `seq 30`; do 57 echo "Waiting for psql" 58 psql --host localhost --username postgres --dbname template1 -c 'select * from information_schema.tables;' > /dev/null && c=0 && break || c=$? && sleep 1 59 done; 60 exit $c 61 62 - run: 63 name: 'Wait for MySQL' 64 command: > 65 c=0; 66 for i in `seq 30`; do 67 echo "Waiting for mysql" 68 mysql --execute 'select * from information_schema.tables;' > /dev/null > /dev/null && c=0 && break || c=$? && sleep 1 69 done; 70 exit $c 71 72 - run: 73 name: Wait for MSSQL 74 command: > 75 c=0; 76 for i in `seq 30`; do 77 echo "Waiting for mssql" 78 sqlcmd -H localhost -U sa -P Sqlboiler@1234 -Q "select * from information_schema.tables;" > /dev/null > /dev/null && c=0 && break || c=$? && sleep 1 79 done; 80 exit $c 81 82 - run: 83 name: 'Download dependencies (core, driver, test, generated)' 84 command: | 85 cd $ROOTPATH; go get -v -t ./... 86 87 - run: 88 name: 'Build SQLBoiler core and drivers' 89 command: | 90 cd $ROOTPATH; make build 91 cd $ROOTPATH; make build-{psql,mysql,mssql} 92 93 - run: 94 name: 'Prepare for tests' 95 command: | 96 mkdir -p $HOME/test_results 97 98 - run: 99 name: 'Tests: All (except drivers,vendor)' 100 command: | 101 cd $ROOTPATH 102 make test | tee $HOME/test_results/results.txt 103 for engine in psql mysql mssql; do 104 make test-user-${engine} 105 make test-db-${engine} 106 make test-generate-${engine} 107 # workaround to fix failing tests due to the absence of 'table_schema.sql' 108 if [ "${engine}" != "mssql" ]; then 109 make test-${engine} | tee $HOME/test_results/results.${engine}.txt 110 fi 111 done 112 113 - run: 114 name: 'Tests: Drivers' 115 command: | 116 cd $ROOTPATH 117 for engine in psql mysql mssql; do 118 make driver-db-${engine} 119 make driver-user-${engine} 120 make driver-test-${engine} | tee $HOME/test_results/results.driver-${engine}.txt 121 done 122 123 - run: 124 name: 'Tests: Convert from plain to JUnit' 125 command: | 126 for file in $HOME/test_results/*.txt; do 127 cat ${file} | go-junit-report > "${file%.txt}.xml" 128 done 129 130 - store_test_results: 131 name: 'Store test results' 132 path: test_results