Sha256: 18498256af070bea90481736372a07caabac4bee81d40252b7481fd68111f084

Contents?: true

Size: 1.4 KB

Versions: 3

Compression:

Stored size: 1.4 KB

Contents

#!/usr/bin/env bash
set -euo pipefail

APP_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
APP_DIR=${APP_SCRIPT_DIR%/script}
cd $APP_DIR

# Parse options
while getopts "v:" opt; do
  case $opt in
    v)
      APP_RUBY_VERSION=$OPTARG
      ;;
    \?)
      echo "Invalid option: -$OPTARG" >&2
      exit 1
      ;;
    :)
      echo "Option -$OPTARG requires an argument." >&2
      exit 1
      ;;
  esac
done

# Validate options
if [ -z ${APP_RUBY_VERSION+x} ]; then
  echo "You must specify a Ruby version with -v. (e.g. 2.7)" >&2
  exit 1
fi

# Set configuration
APP_BASE_IMAGE=${APP_BASE_IMAGE:-datadog/dd-apm-demo:rb-$APP_RUBY_VERSION}
APP_IMAGE=${APP_IMAGE:-$APP_BASE_IMAGE-rspec}
APP_COMPOSE_FILES="-f docker-compose.ci.yml"

echo "== Running integration tests... =="
echo " - App: rspec"
echo " - Ruby version: $APP_RUBY_VERSION"
echo " - Base image: $APP_BASE_IMAGE"
echo " - App image: $APP_IMAGE"
echo ""

# Pull/build any missing images
APP_IMAGE=$APP_IMAGE docker-compose $APP_COMPOSE_FILES build

# Run the test suite
# NOTE: Normally we run "integration-tester" but in this case, the app is the test suite.
#       Just run the app instead.
#       It's expected to produce test failures and raise an exit code. Ignore this.
APP_IMAGE=$APP_IMAGE docker-compose $APP_COMPOSE_FILES run app || true

# Cleanup
APP_IMAGE=$APP_IMAGE docker-compose $APP_COMPOSE_FILES down -t 0 --remove-orphans

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ddtrace-0.51.1 integration/apps/rspec/script/ci
ddtrace-0.51.0 integration/apps/rspec/script/ci
ddtrace-0.50.0 integration/apps/rspec/script/ci