From 546ae73d158c00db0cac9b23a64023ecb451fba4 Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Mon, 28 Oct 2024 13:27:54 -0400 Subject: [PATCH 1/3] Add Dockerfile --- integration/images/ruby/3.4/Dockerfile | 54 ++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 integration/images/ruby/3.4/Dockerfile diff --git a/integration/images/ruby/3.4/Dockerfile b/integration/images/ruby/3.4/Dockerfile new file mode 100644 index 00000000000..3cc6648d99f --- /dev/null +++ b/integration/images/ruby/3.4/Dockerfile @@ -0,0 +1,54 @@ +FROM ruby:3.4.0-preview2 + +ENV DEBIAN_FRONTEND=noninteractive + +# Install prerequisites +RUN set -ex && \ + echo "===> Installing dependencies" && \ + apt-get -y update && \ + apt-get install -y --force-yes --no-install-recommends \ + curl wget tar gzip gnupg apt-transport-https ca-certificates tzdata locales && \ + \ + echo "===> Installing NodeJS" && \ + apt-get install -y --force-yes --no-install-recommends nodejs && \ + \ + echo "===> Installing Yarn" && \ + curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ + echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ + apt-get update && \ + apt-get install -y --force-yes --no-install-recommends yarn && \ + \ + echo "===> Installing database libraries" && \ + apt-get install -y --force-yes --no-install-recommends \ + postgresql-client sqlite3 && \ + \ + echo "===> Installing dev tools" && \ + mkdir -p /usr/share/man/man1 && \ + apt-get install -y --force-yes --no-install-recommends \ + sudo git openssh-client rsync vim \ + net-tools netcat-openbsd parallel unzip zip bzip2 && \ + \ + echo "===> Cleaning up" && \ + rm -rf /var/lib/apt/lists/*; + +# Set timezone to UTC by default +RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime + +# Set language +RUN locale-gen en_US.UTF-8 +ENV LANG en_US.UTF-8 +ENV LANGUAGE en_US:en + +# Install RubyGems +RUN gem update --system 3.4.1 +RUN mkdir -p "$GEM_HOME" && chmod -R 777 "$GEM_HOME" + +# Upgrade RubyGems and Bundler +RUN gem update --system 3.4.1 +RUN gem install bundler +ENV BUNDLE_SILENCE_ROOT_WARNING 1 + +# Setup demo environment includes +COPY ./include /vendor/dd-demo +ENV RUBYLIB /vendor/dd-demo +ENV RUBYOPT -rdatadog/demo_env From 8d82a044ca59263bdeb3694d9458b27215a4a9f8 Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Mon, 28 Oct 2024 13:28:21 -0400 Subject: [PATCH 2/3] Add build scripts --- integration/apps/opentelemetry/script/build-images | 1 + integration/apps/rack/script/build-images | 1 + integration/apps/rails-five/script/ci | 5 +++++ integration/apps/rails-seven/script/build-images | 1 + integration/apps/rails-six/script/build-images | 1 + integration/apps/rspec/script/build-images | 1 + integration/apps/ruby/script/build-images | 1 + integration/apps/sinatra2-classic/script/build-images | 1 + integration/apps/sinatra2-modular/script/build-images | 1 + integration/script/build-images | 1 + 10 files changed, 14 insertions(+) diff --git a/integration/apps/opentelemetry/script/build-images b/integration/apps/opentelemetry/script/build-images index e2e31c34284..30c29cd4839 100755 --- a/integration/apps/opentelemetry/script/build-images +++ b/integration/apps/opentelemetry/script/build-images @@ -36,6 +36,7 @@ else docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.1 -t datadog/dd-apm-demo:rb-3.1-opentelemetry . docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.2 -t datadog/dd-apm-demo:rb-3.2-opentelemetry . docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.3 -t datadog/dd-apm-demo:rb-3.3-opentelemetry . + docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.4 -t datadog/dd-apm-demo:rb-3.4-opentelemetry . # ADD NEW RUBIES HERE fi echo "== Done building Ruby app images. ==" diff --git a/integration/apps/rack/script/build-images b/integration/apps/rack/script/build-images index 7cd885b6000..f983d6a15a4 100755 --- a/integration/apps/rack/script/build-images +++ b/integration/apps/rack/script/build-images @@ -36,6 +36,7 @@ else docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.1 -t datadog/dd-apm-demo:rb-3.1-rack . docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.2 -t datadog/dd-apm-demo:rb-3.2-rack . docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.3 -t datadog/dd-apm-demo:rb-3.3-rack . + docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.4 -t datadog/dd-apm-demo:rb-3.4-rack . # ADD NEW RUBIES HERE fi echo "== Done building Rack images. ==" diff --git a/integration/apps/rails-five/script/ci b/integration/apps/rails-five/script/ci index 61f176e3eb2..98383c67880 100755 --- a/integration/apps/rails-five/script/ci +++ b/integration/apps/rails-five/script/ci @@ -48,6 +48,11 @@ if [[ "$APP_RUBY_VERSION" == "3.3" ]]; then exit 1 fi +if [[ "$APP_RUBY_VERSION" == "3.4" ]]; then + echo "Ruby 3.4 is not supported by Rails 5" + exit 1 +fi + # ADD NEW RUBIES HERE # Set configuration diff --git a/integration/apps/rails-seven/script/build-images b/integration/apps/rails-seven/script/build-images index b0c1d23748e..c74d0da3851 100755 --- a/integration/apps/rails-seven/script/build-images +++ b/integration/apps/rails-seven/script/build-images @@ -30,6 +30,7 @@ else docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.1 -t datadog/dd-apm-demo:rb-3.1-rails-seven . docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.2 -t datadog/dd-apm-demo:rb-3.2-rails-seven . docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.3 -t datadog/dd-apm-demo:rb-3.3-rails-seven . + docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.4 -t datadog/dd-apm-demo:rb-3.4-rails-seven . # ADD NEW RUBIES HERE fi echo "== Done building Rails 7 images. ==" diff --git a/integration/apps/rails-six/script/build-images b/integration/apps/rails-six/script/build-images index ea172edbf93..3d1c07e459f 100755 --- a/integration/apps/rails-six/script/build-images +++ b/integration/apps/rails-six/script/build-images @@ -32,6 +32,7 @@ else docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.1 -t datadog/dd-apm-demo:rb-3.1-rails-six . docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.2 -t datadog/dd-apm-demo:rb-3.2-rails-six . docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.3 -t datadog/dd-apm-demo:rb-3.3-rails-six . + docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.4 -t datadog/dd-apm-demo:rb-3.4-rails-six . # ADD NEW RUBIES HERE fi echo "== Done building Rails 6 images. ==" diff --git a/integration/apps/rspec/script/build-images b/integration/apps/rspec/script/build-images index 65e3472f2cc..31b93b28e26 100755 --- a/integration/apps/rspec/script/build-images +++ b/integration/apps/rspec/script/build-images @@ -36,6 +36,7 @@ else docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.1 -t datadog/dd-apm-demo:rb-3.1-rspec . docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.2 -t datadog/dd-apm-demo:rb-3.2-rspec . docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.3 -t datadog/dd-apm-demo:rb-3.3-rspec . + docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.4 -t datadog/dd-apm-demo:rb-3.4-rspec . # ADD NEW RUBIES HERE fi echo "== Done building Ruby app images. ==" diff --git a/integration/apps/ruby/script/build-images b/integration/apps/ruby/script/build-images index f6375507a8f..b1f29ea3505 100755 --- a/integration/apps/ruby/script/build-images +++ b/integration/apps/ruby/script/build-images @@ -36,6 +36,7 @@ else docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.1 -t datadog/dd-apm-demo:rb-3.1-ruby . docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.2 -t datadog/dd-apm-demo:rb-3.2-ruby . docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.3 -t datadog/dd-apm-demo:rb-3.3-ruby . + docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.4 -t datadog/dd-apm-demo:rb-3.4-ruby . # ADD NEW RUBIES HERE fi echo "== Done building Ruby app images. ==" diff --git a/integration/apps/sinatra2-classic/script/build-images b/integration/apps/sinatra2-classic/script/build-images index cfbb8acb83f..a55dcc8aa51 100755 --- a/integration/apps/sinatra2-classic/script/build-images +++ b/integration/apps/sinatra2-classic/script/build-images @@ -31,6 +31,7 @@ else docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.1 -t datadog/dd-apm-demo:rb-3.1-sinatra2-classic . docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.2 -t datadog/dd-apm-demo:rb-3.2-sinatra2-classic . docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.3 -t datadog/dd-apm-demo:rb-3.3-sinatra2-classic . + docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.4 -t datadog/dd-apm-demo:rb-3.4-sinatra2-classic . # ADD NEW RUBIES HERE fi echo "== Done building Sinatra images. ==" diff --git a/integration/apps/sinatra2-modular/script/build-images b/integration/apps/sinatra2-modular/script/build-images index bc4d461b869..7eb862807f3 100755 --- a/integration/apps/sinatra2-modular/script/build-images +++ b/integration/apps/sinatra2-modular/script/build-images @@ -31,6 +31,7 @@ else docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.1 -t datadog/dd-apm-demo:rb-3.1-sinatra2-modular . docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.2 -t datadog/dd-apm-demo:rb-3.2-sinatra2-modular . docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.3 -t datadog/dd-apm-demo:rb-3.3-sinatra2-modular . + docker build --build-arg BASE_IMAGE=datadog/dd-apm-demo:rb-3.4 -t datadog/dd-apm-demo:rb-3.4-sinatra2-modular . # ADD NEW RUBIES HERE fi echo "== Done building Sinatra images. ==" diff --git a/integration/script/build-images b/integration/script/build-images index ddda248e9eb..9a98f4f9516 100755 --- a/integration/script/build-images +++ b/integration/script/build-images @@ -50,6 +50,7 @@ else docker build -t datadog/dd-apm-demo:rb-3.1 -f $INTEGRATION_DIR/images/ruby/3.1/Dockerfile $INTEGRATION_DIR/images docker build -t datadog/dd-apm-demo:rb-3.2 -f $INTEGRATION_DIR/images/ruby/3.2/Dockerfile $INTEGRATION_DIR/images docker build -t datadog/dd-apm-demo:rb-3.3 -f $INTEGRATION_DIR/images/ruby/3.3/Dockerfile $INTEGRATION_DIR/images + docker build -t datadog/dd-apm-demo:rb-3.4 -f $INTEGRATION_DIR/images/ruby/3.4/Dockerfile $INTEGRATION_DIR/images # ADD NEW RUBIES HERE fi echo "== Done building base images. ==" From d8d23034ddc0e4d1b48e3daceafbc405ce6ca9c4 Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Mon, 28 Oct 2024 13:28:56 -0400 Subject: [PATCH 3/3] Add gems to rails-six and rails-seven Gemfiles --- integration/apps/rails-seven/Gemfile | 4 ++++ integration/apps/rails-six/Gemfile | 3 +++ 2 files changed, 7 insertions(+) diff --git a/integration/apps/rails-seven/Gemfile b/integration/apps/rails-seven/Gemfile index cc39a6c097d..85b7d128063 100644 --- a/integration/apps/rails-seven/Gemfile +++ b/integration/apps/rails-seven/Gemfile @@ -45,3 +45,7 @@ group :development do # Speed up commands on slow machines / big apps [https://github.com/rails/spring] # gem "spring" end + +# Gems no longer included in Ruby 3.4 +gem 'bigdecimal' +gem 'mutex_m' diff --git a/integration/apps/rails-six/Gemfile b/integration/apps/rails-six/Gemfile index 70a3073a631..ef4cbcc6b02 100644 --- a/integration/apps/rails-six/Gemfile +++ b/integration/apps/rails-six/Gemfile @@ -96,3 +96,6 @@ group :test, :development do gem 'listen' end + +# Gem no longer included in Ruby 3.4 +gem 'mutex_m'