CI Instrumentation With Services #51
  
    
      This file contains hidden or 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 * * *" | |
| permissions: | |
| contents: read | |
| 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@v5 | |
| - name: "Test Ruby 3.4" | |
| uses: ./.github/actions/test_gem | |
| with: | |
| gem: "opentelemetry-instrumentation-${{ matrix.gem }}" | |
| ruby: "3.4" | |
| - 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" | |
| yard: true | |
| rubocop: true | |
| coverage: true | |
| build: true | |
| 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@v5 | |
| - name: "Test Ruby 3.4" | |
| uses: ./.github/actions/test_gem | |
| with: | |
| gem: "opentelemetry-instrumentation-${{ matrix.gem }}" | |
| ruby: "3.4" | |
| - 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" | |
| yard: true | |
| rubocop: true | |
| coverage: 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@v5 | |
| - name: "Test Ruby 3.4" | |
| uses: ./.github/actions/test_gem | |
| with: | |
| gem: "opentelemetry-instrumentation-${{ matrix.gem }}" | |
| ruby: "3.4" | |
| - 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" | |
| yard: true | |
| rubocop: true | |
| coverage: 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:7.9.1 | |
| 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@v5 | |
| - name: "Test Ruby 3.4" | |
| uses: ./.github/actions/test_gem | |
| with: | |
| gem: "opentelemetry-instrumentation-${{ matrix.gem }}" | |
| ruby: "3.4" | |
| - 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" | |
| yard: true | |
| rubocop: true | |
| coverage: true | |
| build: true | |
| services: | |
| redis: | |
| image: bitnamilegacy/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@v5 | |
| - name: "Test Ruby 3.4" | |
| uses: ./.github/actions/test_gem | |
| with: | |
| gem: "opentelemetry-instrumentation-${{ matrix.gem }}" | |
| ruby: "3.4" | |
| - 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" | |
| yard: true | |
| rubocop: true | |
| coverage: 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@v5 | |
| - name: "Test Ruby 3.4" | |
| uses: ./.github/actions/test_gem | |
| with: | |
| gem: "opentelemetry-instrumentation-${{ matrix.gem }}" | |
| ruby: "3.4" | |
| - 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" | |
| yard: true | |
| rubocop: true | |
| coverage: true | |
| build: true | |
| services: | |
| rabbitmq: | |
| image: rabbitmq:3.8-alpine | |
| ports: | |
| - "5672:5672" |