CI Instrumentation With Services #158
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI Instrumentation With Services | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
schedule: | |
- cron: "0 0 * * *" | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number }} # Ensure that only one instance of this workflow is running per Pull Request | |
cancel-in-progress: true # Cancel any previous runs of this workflow | |
jobs: | |
instrumentation_with_services: | |
strategy: | |
fail-fast: false | |
matrix: | |
gem: | |
- dalli | |
- mongo | |
os: | |
- ubuntu-latest | |
name: other / ${{ matrix.gem }} / ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: "Test Ruby 3.3" | |
uses: ./.github/actions/test_gem | |
with: | |
gem: "opentelemetry-instrumentation-${{ matrix.gem }}" | |
ruby: "3.3" | |
- name: "Test Ruby 3.2" | |
uses: ./.github/actions/test_gem | |
with: | |
gem: "opentelemetry-instrumentation-${{ matrix.gem }}" | |
ruby: "3.2" | |
- name: "Test Ruby 3.1" | |
uses: ./.github/actions/test_gem | |
with: | |
gem: "opentelemetry-instrumentation-${{ matrix.gem }}" | |
ruby: "3.1" | |
- name: "Test Ruby 3.0" | |
uses: ./.github/actions/test_gem | |
with: | |
gem: "opentelemetry-instrumentation-${{ matrix.gem }}" | |
ruby: "3.0" | |
yard: true | |
rubocop: true | |
build: true | |
- name: "Test JRuby" | |
uses: ./.github/actions/test_gem | |
with: | |
gem: "opentelemetry-instrumentation-${{ matrix.gem }}" | |
ruby: "jruby-9.4.8.0" | |
services: | |
memcached: | |
image: memcached:alpine | |
ports: | |
- 11211:11211 | |
mongodb: | |
image: mongo:4.4 | |
ports: | |
- 27017:27017 | |
instrumentation_mysql: | |
strategy: | |
fail-fast: false | |
matrix: | |
gem: | |
- mysql2 | |
- trilogy | |
os: | |
- ubuntu-latest | |
name: mysql / ${{ matrix.gem }} / ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: "Test Ruby 3.3" | |
uses: ./.github/actions/test_gem | |
with: | |
gem: "opentelemetry-instrumentation-${{ matrix.gem }}" | |
ruby: "3.3" | |
- name: "Test Ruby 3.2" | |
uses: ./.github/actions/test_gem | |
with: | |
gem: "opentelemetry-instrumentation-${{ matrix.gem }}" | |
ruby: "3.2" | |
- name: "Test Ruby 3.1" | |
uses: ./.github/actions/test_gem | |
with: | |
gem: "opentelemetry-instrumentation-${{ matrix.gem }}" | |
ruby: "3.1" | |
- name: "Test Ruby 3.0" | |
uses: ./.github/actions/test_gem | |
with: | |
gem: "opentelemetry-instrumentation-${{ matrix.gem }}" | |
ruby: "3.0" | |
yard: true | |
rubocop: true | |
build: true | |
services: | |
mysql: | |
image: mysql:8.0.31 | |
options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s --health-retries=3 -e MYSQL_DATABASE=mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_PASSWORD=mysql -e MYSQL_USER=mysql -p 3306:3306 --entrypoint sh mysql:8.0.31 -c "exec docker-entrypoint.sh mysqld --default-authentication-plugin=mysql_native_password" | |
instrumentation_kafka: | |
strategy: | |
fail-fast: false | |
matrix: | |
gem: | |
- racecar | |
- rdkafka | |
- ruby_kafka | |
os: | |
- ubuntu-latest | |
name: kafka / ${{ matrix.gem }} / ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: "Test Ruby 3.3" | |
uses: ./.github/actions/test_gem | |
with: | |
gem: "opentelemetry-instrumentation-${{ matrix.gem }}" | |
ruby: "3.3" | |
- name: "Test Ruby 3.2" | |
uses: ./.github/actions/test_gem | |
with: | |
gem: "opentelemetry-instrumentation-${{ matrix.gem }}" | |
ruby: "3.2" | |
- name: "Test Ruby 3.1" | |
uses: ./.github/actions/test_gem | |
with: | |
gem: "opentelemetry-instrumentation-${{ matrix.gem }}" | |
ruby: "3.1" | |
- name: "Test Ruby 3.0" | |
uses: ./.github/actions/test_gem | |
with: | |
gem: "opentelemetry-instrumentation-${{ matrix.gem }}" | |
ruby: "3.0" | |
yard: true | |
rubocop: true | |
build: true | |
services: | |
zookeeper: | |
image: confluentinc/cp-zookeeper:latest | |
ports: | |
- 2181:2181 | |
env: | |
ZOOKEEPER_CLIENT_PORT: 2181 | |
ZOOKEEPER_TICK_TIME: 2000 | |
kafka: | |
image: confluentinc/cp-kafka:latest | |
ports: | |
- 9092:9092 | |
- 29092:29092 | |
env: | |
KAFKA_BROKER_ID: 1 | |
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 | |
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:29092,PLAINTEXT_HOST://localhost:9092 | |
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT | |
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT | |
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 | |
instrumentation_redis: | |
strategy: | |
fail-fast: false | |
matrix: | |
gem: | |
- redis | |
- resque | |
- sidekiq | |
os: | |
- ubuntu-latest | |
name: redis / ${{ matrix.gem }} / ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: "Test Ruby 3.3" | |
uses: ./.github/actions/test_gem | |
with: | |
gem: "opentelemetry-instrumentation-${{ matrix.gem }}" | |
ruby: "3.3" | |
- name: "Test Ruby 3.2" | |
uses: ./.github/actions/test_gem | |
with: | |
gem: "opentelemetry-instrumentation-${{ matrix.gem }}" | |
ruby: "3.2" | |
- name: "Test Ruby 3.1" | |
uses: ./.github/actions/test_gem | |
with: | |
gem: "opentelemetry-instrumentation-${{ matrix.gem }}" | |
ruby: "3.1" | |
- name: "Test Ruby 3.0" | |
uses: ./.github/actions/test_gem | |
with: | |
gem: "opentelemetry-instrumentation-${{ matrix.gem }}" | |
ruby: "3.0" | |
yard: true | |
rubocop: true | |
build: true | |
services: | |
redis: | |
image: bitnami/redis:6.2 | |
ports: | |
- 6379:6379 | |
options: >- | |
--health-cmd "redis-cli ping" | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
env: | |
REDIS_PASSWORD: "passw0rd" | |
instrumentation_postgresql: | |
strategy: | |
fail-fast: false | |
matrix: | |
gem: | |
- pg | |
- que | |
os: | |
- ubuntu-latest | |
name: postgresql / ${{ matrix.gem }} / ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: "Test Ruby 3.3" | |
uses: ./.github/actions/test_gem | |
with: | |
gem: "opentelemetry-instrumentation-${{ matrix.gem }}" | |
ruby: "3.3" | |
- name: "Test Ruby 3.2" | |
uses: ./.github/actions/test_gem | |
with: | |
gem: "opentelemetry-instrumentation-${{ matrix.gem }}" | |
ruby: "3.2" | |
- name: "Test Ruby 3.1" | |
uses: ./.github/actions/test_gem | |
with: | |
gem: "opentelemetry-instrumentation-${{ matrix.gem }}" | |
ruby: "3.1" | |
- name: "Test Ruby 3.0" | |
uses: ./.github/actions/test_gem | |
with: | |
gem: "opentelemetry-instrumentation-${{ matrix.gem }}" | |
ruby: "3.0" | |
yard: true | |
rubocop: true | |
build: true | |
services: | |
postgres: | |
image: postgres:13 | |
env: | |
POSTGRES_PASSWORD: postgres | |
ports: | |
- 5432:5432 | |
options: --health-cmd="pg_isready" --health-interval=5s --health-timeout=2s --health-retries=3 | |
volumes: | |
- "/var/run/postgresql:/var/run/postgresql" | |
instrumentation_rabbitmq: | |
strategy: | |
fail-fast: false | |
matrix: | |
gem: | |
- bunny | |
os: | |
- ubuntu-latest | |
name: rabbitmq / ${{ matrix.gem }} / ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: "Test Ruby 3.3" | |
uses: ./.github/actions/test_gem | |
with: | |
gem: "opentelemetry-instrumentation-${{ matrix.gem }}" | |
ruby: "3.3" | |
- name: "Test Ruby 3.2" | |
uses: ./.github/actions/test_gem | |
with: | |
gem: "opentelemetry-instrumentation-${{ matrix.gem }}" | |
ruby: "3.2" | |
- name: "Test Ruby 3.1" | |
uses: ./.github/actions/test_gem | |
with: | |
gem: "opentelemetry-instrumentation-${{ matrix.gem }}" | |
ruby: "3.1" | |
- name: "Test Ruby 3.0" | |
uses: ./.github/actions/test_gem | |
with: | |
gem: "opentelemetry-instrumentation-${{ matrix.gem }}" | |
ruby: "3.0" | |
yard: true | |
rubocop: true | |
build: true | |
services: | |
rabbitmq: | |
image: rabbitmq:3.8-alpine | |
ports: | |
- "5672:5672" |