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}