Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 27 additions & 29 deletions .github/workflows/ci-example-dice-roller.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ jobs:
dice-roller-docker:
if: ${{ github.repository == 'open-telemetry/opentelemetry-ruby' }}
name: Docker ${{ matrix.version }}
runs-on: ubuntu-24.04
runs-on: ubuntu-26.04
strategy:
fail-fast: false
matrix:
Expand All @@ -73,37 +73,29 @@ jobs:
with:
persist-credentials: false

- name: Set up QEMU
uses: docker/setup-qemu-action@99012661954931238ded8c8b007157a8430204e1 # v4.4.0

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4.4.1
with:
driver: docker-container

- name: Build Docker image (${{ matrix.version }})
working-directory: examples/dice_roller
run: |
# 🐳 Build ${{ matrix.version }} image 🐳
docker build \
--target ${{ matrix.version }} \
-t dice_roller:${{ matrix.version }} \
.
uses: docker/build-push-action@c3c9e263c25d99ce0380d002d59b67737d91b0dc # v7.4.0
with:
context: examples/dice_roller
target: ${{ matrix.version }}
platforms: linux/amd64
load: true
tags: dice_roller:${{ matrix.version }}

- name: Run container (${{ matrix.version }})
working-directory: examples/dice_roller
run: |
# 🐳 Start container 🐳
docker run -d \
--name dice_roller_${{ matrix.version }} \
-p 8080:8080 \
-e OTEL_TRACES_EXPORTER=none \
-e OTEL_METRICS_EXPORTER=none \
-e OTEL_LOGS_EXPORTER=none \
-e OTEL_SERVICE_NAME=dice_roller_ci \
dice_roller:${{ matrix.version }}
echo "Waiting for container to be ready..."
for i in $(seq 1 30); do
if curl -sf http://localhost:8080/rolldice > /dev/null 2>&1; then
echo "Container ready after ${i}s"
exit 0
fi
sleep 1
done
echo "Container did not start in time" >&2
docker logs dice_roller_${{ matrix.version }}
exit 1
export VERSION=${{ matrix.version }}
docker compose up --wait -d

- name: Verify /rolldice (single roll)
run: |
Expand All @@ -123,8 +115,14 @@ jobs:
echo "Response: $RESPONSE"
echo "$RESPONSE" | grep -qE '^[1-6]$'

- name: Debug container logs
if: failure()
run: |
docker logs dice_roller_${{ matrix.version }}

- name: Stop and remove container
if: always()
working-directory: examples/dice_roller
run: |
docker stop dice_roller_${{ matrix.version }} || true
docker rm dice_roller_${{ matrix.version }} || true
export VERSION=${{ matrix.version }}
docker compose down --remove-orphans --volumes
4 changes: 2 additions & 2 deletions examples/dice_roller/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@
# ---------------------------------------------------------------------------
ARG APP_VERSION=instrumented

FROM ruby:3.3.12-slim@sha256:9d6e20500e6d10c9125895491dfa5cccdbb0497f0e8a0f38ca2d7e4f410c6283 AS base
FROM ruby:3.3.12-slim@sha256:379ffc9ca20cae2655cb80cac53ee23e1e7d859c03a4cceb7f567d6ce4873cee AS base

WORKDIR /app

# Install build dependencies
RUN apt-get update -qq && \
apt-get install -y --no-install-recommends build-essential && \
apt-get install -y --no-install-recommends build-essential curl && \
rm -rf /var/lib/apt/lists/*

# ---------------------------------------------------------------------------
Expand Down
16 changes: 16 additions & 0 deletions examples/dice_roller/compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
services:
dice_roller:
image: dice_roller:${VERSION}
container_name: dice_roller_${VERSION}
ports:
- "8080:8080"
environment:
OTEL_TRACES_EXPORTER: none
OTEL_METRICS_EXPORTER: none
OTEL_LOGS_EXPORTER: none
OTEL_SERVICE_NAME: dice_roller_ci
healthcheck:
test: ["CMD", "bash", "-c", "curl -s -o /dev/null http://localhost:8080/rolldice"]
interval: 1s
timeout: 1s
retries: 30
Loading