deployment.sh 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #!/bin/bash
  2. #
  3. # Bash script to deploy Web Framework Benchmarks on hosts that are already provisioned.
  4. #
  5. # This is the master script that executes each step in sequence.
  6. # If a step fails, you can correct the cause and manually execute the missing steps
  7. # without having to restart from scratch.
  8. #
  9. # Note: These scripts are designed to run both on Windows (under Cygwin) and
  10. # on Linux and Mac. To achieve that, they have to use some workarounds that
  11. # wouldn't seem necessary or usual in a pure Linux environment.
  12. #
  13. set -o errexit
  14. BENCHMARK_DEPLOYMENT_HOME="toolset/deployment"
  15. if [ ! -d "$BENCHMARK_DEPLOYMENT_HOME" ]; then echo "Could not find the '$BENCHMARK_DEPLOYMENT_HOME' directory. This script must be run from the FrameworkBenchmarks directory."; exit 1; fi
  16. source "$BENCHMARK_DEPLOYMENT_HOME/common/bash-common.sh"
  17. if [ -z "$1" ]; then fail "The deployment configuration file name must be provided as an argument."; fi
  18. BENCHMARK_DEPLOYMENT_CONFIGURATION=$1
  19. if [ ! -f $BENCHMARK_DEPLOYMENT_CONFIGURATION ]; then fail "File not found: $BENCHMARK_DEPLOYMENT_CONFIGURATION"; fi
  20. source "$BENCHMARK_DEPLOYMENT_CONFIGURATION"
  21. function deployment_check_configuration {
  22. if [ -z "$BENCHMARK_LINUX_SERVER" ]; then fail "BENCHMARK_LINUX_SERVER is not defined."; fi
  23. if [ -z "$BENCHMARK_LINUX_SERVER_IP" ]; then fail "BENCHMARK_LINUX_SERVER_IP is not defined."; fi
  24. if [ -z "$BENCHMARK_LINUX_CLIENT" ]; then fail "BENCHMARK_LINUX_CLIENT is not defined."; fi
  25. if [ -z "$BENCHMARK_LINUX_CLIENT_IP" ]; then fail "BENCHMARK_LINUX_CLIENT_IP is not defined."; fi
  26. if [ -z "$BENCHMARK_LINUX_USER" ]; then fail "BENCHMARK_LINUX_USER is not defined."; fi
  27. if [ -z "$BENCHMARK_LINUX_SERVER" ]; then fail "BENCHMARK_LINUX_SERVER is not defined."; fi
  28. if [ -z "$BENCHMARK_SSH_KEY" ]; then fail "BENCHMARK_SSH_KEY is not defined."; fi
  29. if [ ! -f $BENCHMARK_SSH_KEY ]; then fail "File not found: $BENCHMARK_SSH_KEY"; fi
  30. if [ -z "$BENCHMARK_WORKING_DIR" ]; then fail "BENCHMARK_WORKING_DIR is not defined."; fi
  31. if [ ! -d "$BENCHMARK_WORKING_DIR" ]; then fail "Directory not found: $BENCHMARK_WORKING_DIR"; fi
  32. if [ -z "$BENCHMARK_REPOSITORY" ]; then fail "BENCHMARK_REPOSITORY is not defined."; fi
  33. if [ -z "$BENCHMARK_BRANCH" ]; then fail "BENCHMARK_BRANCH is not defined."; fi
  34. }
  35. information "Deploying Web Framework Benchmarks..."
  36. echo ""
  37. # Execute deployment steps
  38. deployment_check_configuration
  39. run_bash "$BENCHMARK_DEPLOYMENT_HOME/common/linux-initial-deployment.sh" "$BENCHMARK_DEPLOYMENT_CONFIGURATION" || fail "Deployment failed."
  40. run_bash "$BENCHMARK_DEPLOYMENT_HOME/common/linux-additional-deployment.sh" "$BENCHMARK_DEPLOYMENT_CONFIGURATION" || fail "Deployment failed."
  41. if [ ! -z "$BENCHMARK_WINDOWS_SERVER" ]
  42. then
  43. run_bash "$BENCHMARK_DEPLOYMENT_HOME/common/windows-server-deployment.sh" "$BENCHMARK_DEPLOYMENT_CONFIGURATION" || fail "Deployment failed."
  44. fi
  45. if [ ! -z "$BENCHMARK_SQL_SERVER" ]
  46. then
  47. run_bash "$BENCHMARK_DEPLOYMENT_HOME/common/sql-server-deployment.sh" "$BENCHMARK_DEPLOYMENT_CONFIGURATION" || fail "Deployment failed."
  48. fi
  49. information "Web Framework Benchmarks deployment finished."
  50. echo ""