github.com/hellofresh/janus@v0.0.0-20230925145208-ce8de8183c67/build/features.sh (about) 1 #!/bin/sh 2 set +e 3 4 NO_COLOR='\033[0m' 5 OK_COLOR='\033[32;01m' 6 ERROR_COLOR='\033[31;01m' 7 WARN_COLOR='\033[33;01m' 8 PASS="${OK_COLOR}PASS ${NO_COLOR}" 9 FAIL="${ERROR_COLOR}FAIL ${NO_COLOR}" 10 11 MONGO_PORT="27017" 12 if [ -n "${DYNAMIC_MONGO_PORT}" ]; then 13 MONGO_PORT=${DYNAMIC_MONGO_PORT} 14 fi 15 16 if ! [ -x "$(command -v godog)" ]; then 17 echo "${OK_COLOR}Installing missing godog command:${NO_COLOR}" 18 # We need to be outside of the project root when installing godog 19 # Otherwise we will try to verify dependencies again 20 cd .. 21 GO111MODULE=on go get -u github.com/cucumber/godog/cmd/godog@v0.10.0 22 cd - 23 # add $GOPATH/bin to global path to make command available w/out as path 24 export PATH=${PATH}:`go env GOPATH`/bin 25 fi 26 27 echo "${OK_COLOR}Running features test:${NO_COLOR}" 28 29 export DATABASE_DSN="mongodb://localhost:${MONGO_PORT}/ops_gateway" 30 export STATS_DSN="noop://" 31 export PORT="3000" 32 export API_PORT="3001" 33 export DEBUG="true" 34 export LOG_LEVEL="debug" 35 export SECRET="secret key" 36 export BASIC_USERS="admin:admin" 37 export API_READONLY="false" 38 export PORT_SECONDARY="3100" 39 export API_PORT_SECONDARY="3101" 40 export BACKEND_UPDATE_FREQUENCY="0.5s" 41 42 "./dist/janus" start >/tmp/janus.log 2>&1 & 43 exit_code=$? 44 if [ ${exit_code} -ne 0 ]; then 45 echo "${ERROR_COLOR}Failed to run primary janus instance${NO_COLOR}" 46 cat janus.log 47 48 exit ${exit_code} 49 fi 50 pid_janus=$! 51 52 echo "${OK_COLOR}Started primary instance; PID: ${pid_janus}${NO_COLOR}" 53 54 # remember primary instance ports 55 PORT_PRIMARY=${PORT} 56 API_PORT_PRIMARY=${API_PORT} 57 58 # set ports env variables to secondary to run secondary instance on another ports 59 export PORT=${PORT_SECONDARY} 60 export API_PORT=${API_PORT_SECONDARY} 61 62 "./dist/janus" start >/tmp/janus2.log 2>&1 & 63 exit_code=$? 64 if [ ${exit_code} -ne 0 ]; then 65 echo "${ERROR_COLOR}Failed to run secondary janus instance${NO_COLOR}" 66 cat /tmp/janus2.log 67 68 exit ${exit_code} 69 fi 70 pid_janus2=$! 71 72 echo "${OK_COLOR}Started secondary instance; PID: ${pid_janus2}${NO_COLOR}" 73 74 # revert port values back 75 export PORT=${PORT_PRIMARY} 76 export API_PORT=${API_PORT_PRIMARY} 77 78 # make sure app started 79 sleep 1 80 81 godog --format=pretty --random --stop-on-failure --strict 82 exit_code=$? 83 84 kill ${pid_janus} 85 kill ${pid_janus2} 86 87 # Make sure to exit if the test failed 88 if [ ${exit_code} -ne 0 ]; then 89 echo "${WARN_COLOR}=================================${NO_COLOR}" 90 echo "${WARN_COLOR}=== PRIMARY ===${NO_COLOR}" 91 echo "${WARN_COLOR}=================================${NO_COLOR}" 92 cat /tmp/janus.log 93 94 echo "${WARN_COLOR}=================================${NO_COLOR}" 95 echo "${WARN_COLOR}=== SECONDARY ===${NO_COLOR}" 96 echo "${WARN_COLOR}=================================${NO_COLOR}" 97 cat /tmp/janus2.log 98 99 echo "${WARN_COLOR}=================================${NO_COLOR}" 100 echo "${WARN_COLOR}=== WIREMOCK ===${NO_COLOR}" 101 echo "${WARN_COLOR}=================================${NO_COLOR}" 102 docker-compose -f assets/docker-compose.yml logs service1 103 fi 104 105 exit ${exit_code}