diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5614ab5a87..0d8f5666fd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -110,6 +110,71 @@ jobs: multiverse: + needs: run_rubocop + runs-on: ubuntu-22.04 + strategy: + fail-fast: false + matrix: + multiverse: [agent, ai, background, background_2, frameworks, httpclients, httpclients_2, rails, rest] + ruby-version: [2.4.10, 3.4.1] + + steps: + - name: Configure git + run: 'git config --global init.defaultBranch main' + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # tag v4.1.7 + + # - curl is needed for Curb + # - xslt is needed for older Nokogiris, RUBY_VERSION < 2.5 + # - sasl is needed for memcached + - name: Install OS packages + run: sudo apt-get update; sudo apt-get install -y --no-install-recommends libcurl4-nss-dev libsasl2-dev libxslt1-dev + + - name: Install Ruby ${{ matrix.ruby-version }} + uses: ruby/setup-ruby@4a9ddd6f338a97768b8006bf671dfbad383215f4 # tag v1.207.0 + with: + ruby-version: ${{ matrix.ruby-version }} + + - name: Setup bundler + run: ./.github/workflows/scripts/setup_bundler + env: + RUBY_VERSION: ${{ matrix.ruby-version }} + + - name: Run Multiverse Tests + uses: nick-fields/retry@7152eba30c6575329ac0576536151aca5a72780e # tag v3.0.0 + with: + timeout_minutes: 60 + max_attempts: 2 + command: bundle exec rake test:multiverse[group="${{ matrix.multiverse }}"] + env: + VERBOSE_TEST_OUTPUT: true + SERIALIZE: 1 + COVERAGE: true + CI_FOR_PR: true + + - name: Annotate errors + if: ${{ failure() }} + uses: ./.github/actions/annotate + + - name: Save coverage results + uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # tag v4.3.4 + with: + name: coverage-report-multiverse-${{ matrix.ruby-version }}-${{ matrix.multiverse }} + path: lib/coverage_*/.resultset.json + retention-days: 2 + + - name: Generate gem manifest + run: rake test:multiverse:gem_manifest + + - name: Save gem manifest + uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # tag v4.3.4 + with: + name: gem_manifest_${{ matrix.ruby-version }}_${{ matrix.multiverse }}.json + path: gem_manifest_${{ matrix.ruby-version }}_${{ matrix.multiverse }}.json + retention-days: 2 + + + + multiverse_services_1: needs: run_rubocop runs-on: ubuntu-22.04 services: @@ -136,17 +201,83 @@ jobs: --health-interval 10s --health-timeout 5s --health-retries 10 - zookeeper: - image: bitnami/zookeeper + mongodb: + image: ${{ contains(fromJson('["2.4.10"]'), matrix.ruby-version) && 'mongo:5.0.11' || 'mongo:latest' }} ports: - - 2181:2181 - env: - ALLOW_ANONYMOUS_LOGIN: yes + - 27017:27017 + rabbitmq: + image: rabbitmq:latest + ports: + - 5672:5672 options: >- - --health-cmd "echo mntr | nc -w 2 -q 2 localhost 2181" + --health-cmd "rabbitmq-diagnostics -q check_port_connectivity" --health-interval 10s --health-timeout 5s --health-retries 5 + strategy: + fail-fast: false + matrix: + ruby-version: [2.4.10, 3.4.1] + + steps: + - name: Configure git + run: 'git config --global init.defaultBranch main' + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # tag v4.1.7 + + # - curl is needed for Curb + # - xslt is needed for older Nokogiris, RUBY_VERSION < 2.5 + # - sasl is needed for memcached + - name: Install OS packages + run: sudo apt-get update; sudo apt-get install -y --no-install-recommends libcurl4-nss-dev libsasl2-dev libxslt1-dev + + - name: Install Ruby ${{ matrix.ruby-version }} + uses: ruby/setup-ruby@4a9ddd6f338a97768b8006bf671dfbad383215f4 # tag v1.207.0 + with: + ruby-version: ${{ matrix.ruby-version }} + + - name: Setup bundler + run: ./.github/workflows/scripts/setup_bundler + env: + RUBY_VERSION: ${{ matrix.ruby-version }} + + - name: Run Multiverse Tests + uses: nick-fields/retry@7152eba30c6575329ac0576536151aca5a72780e # tag v3.0.0 + with: + timeout_minutes: 60 + max_attempts: 2 + command: bundle exec rake test:multiverse[group="services_1"] + env: + VERBOSE_TEST_OUTPUT: true + SERIALIZE: 1 + COVERAGE: true + CI_FOR_PR: true + + - name: Annotate errors + if: ${{ failure() }} + uses: ./.github/actions/annotate + + - name: Save coverage results + uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # tag v4.3.4 + with: + name: coverage-report-multiverse-${{ matrix.ruby-version }}-services_1 + path: lib/coverage_*/.resultset.json + retention-days: 2 + + - name: Generate gem manifest + run: rake test:multiverse:gem_manifest + + - name: Save gem manifest + uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # tag v4.3.4 + with: + name: gem_manifest_${{ matrix.ruby-version }}_services_1.json + path: gem_manifest_${{ matrix.ruby-version }}_services_1.json + retention-days: 2 + + + multiverse_services_2: + needs: run_rubocop + runs-on: ubuntu-22.04 + services: kafka: image: bitnami/kafka ports: @@ -172,10 +303,170 @@ jobs: --health-interval 10s --health-timeout 5s --health-retries 5 - mongodb: - image: ${{ contains(fromJson('["2.4.10"]'), matrix.ruby-version) && 'mongo:5.0.11' || 'mongo:latest' }} + redis: + image: redis ports: - - 27017:27017 + - 6379:6379 + options: >- + --health-cmd "redis-cli ping" + --health-interval 10s + --health-timeout 5s + --health-retries 5 + strategy: + fail-fast: false + matrix: + ruby-version: [2.4.10, 3.4.1] + + steps: + - name: Configure git + run: 'git config --global init.defaultBranch main' + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # tag v4.1.7 + + # - curl is needed for Curb + # - xslt is needed for older Nokogiris, RUBY_VERSION < 2.5 + # - sasl is needed for memcached + - name: Install OS packages + run: sudo apt-get update; sudo apt-get install -y --no-install-recommends libcurl4-nss-dev libsasl2-dev libxslt1-dev + + - name: Install Ruby ${{ matrix.ruby-version }} + uses: ruby/setup-ruby@4a9ddd6f338a97768b8006bf671dfbad383215f4 # tag v1.207.0 + with: + ruby-version: ${{ matrix.ruby-version }} + + - name: Setup bundler + run: ./.github/workflows/scripts/setup_bundler + env: + RUBY_VERSION: ${{ matrix.ruby-version }} + + - name: Run Multiverse Tests + uses: nick-fields/retry@7152eba30c6575329ac0576536151aca5a72780e # tag v3.0.0 + with: + timeout_minutes: 60 + max_attempts: 2 + command: bundle exec rake test:multiverse[group="services_2"] + env: + VERBOSE_TEST_OUTPUT: true + SERIALIZE: 1 + COVERAGE: true + CI_FOR_PR: true + + - name: Annotate errors + if: ${{ failure() }} + uses: ./.github/actions/annotate + + - name: Save coverage results + uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # tag v4.3.4 + with: + name: coverage-report-multiverse-${{ matrix.ruby-version }}-services_2 + path: lib/coverage_*/.resultset.json + retention-days: 2 + + - name: Generate gem manifest + run: rake test:multiverse:gem_manifest + + - name: Save gem manifest + uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # tag v4.3.4 + with: + name: gem_manifest_${{ matrix.ruby-version }}_services_2.json + path: gem_manifest_${{ matrix.ruby-version }}_services_2.json + retention-days: 2 + + + multiverse_services_kafka: + needs: run_rubocop + runs-on: ubuntu-22.04 + services: + kafka: + image: bitnami/kafka + ports: + - 9092:9092 + options: >- + --health-cmd "kafka-broker-api-versions.sh --version" + --health-interval 10s + --health-timeout 5s + --health-retries 5 + env: + KAFKA_CFG_ZOOKEEPER_CONNECT: zookeeper:2181 + ALLOW_PLAINTEXT_LISTENER: yes + KAFKA_LISTENERS: INSIDE://0.0.0.0:9093,OUTSIDE://0.0.0.0:9092 + KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT + KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE + KAFKA_ADVERTISED_LISTENERS: INSIDE://kafka:9093,OUTSIDE://localhost:9092 + zookeeper: + image: bitnami/zookeeper + ports: + - 2181:2181 + env: + ALLOW_ANONYMOUS_LOGIN: yes + options: >- + --health-cmd "echo mntr | nc -w 2 -q 2 localhost 2181" + --health-interval 10s + --health-timeout 5s + --health-retries 5 + strategy: + fail-fast: false + matrix: + ruby-version: [2.4.10, 3.4.1] + + steps: + - name: Configure git + run: 'git config --global init.defaultBranch main' + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # tag v4.1.7 + + # - curl is needed for Curb + # - xslt is needed for older Nokogiris, RUBY_VERSION < 2.5 + # - sasl is needed for memcached + - name: Install OS packages + run: sudo apt-get update; sudo apt-get install -y --no-install-recommends libcurl4-nss-dev libsasl2-dev libxslt1-dev + + - name: Install Ruby ${{ matrix.ruby-version }} + uses: ruby/setup-ruby@4a9ddd6f338a97768b8006bf671dfbad383215f4 # tag v1.207.0 + with: + ruby-version: ${{ matrix.ruby-version }} + + - name: Setup bundler + run: ./.github/workflows/scripts/setup_bundler + env: + RUBY_VERSION: ${{ matrix.ruby-version }} + + - name: Run Multiverse Tests + uses: nick-fields/retry@7152eba30c6575329ac0576536151aca5a72780e # tag v3.0.0 + with: + timeout_minutes: 60 + max_attempts: 2 + command: bundle exec rake test:multiverse[group="services_kafka"] + env: + VERBOSE_TEST_OUTPUT: true + SERIALIZE: 1 + COVERAGE: true + CI_FOR_PR: true + + - name: Annotate errors + if: ${{ failure() }} + uses: ./.github/actions/annotate + + - name: Save coverage results + uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # tag v4.3.4 + with: + name: coverage-report-multiverse-${{ matrix.ruby-version }}-services_kafka + path: lib/coverage_*/.resultset.json + retention-days: 2 + + - name: Generate gem manifest + run: rake test:multiverse:gem_manifest + + - name: Save gem manifest + uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # tag v4.3.4 + with: + name: gem_manifest_${{ matrix.ruby-version }}_services_kafka.json + path: gem_manifest_${{ matrix.ruby-version }}_services_kafka.json + retention-days: 2 + + + multiverse_services_mysql_pg: + needs: run_rubocop + runs-on: ubuntu-22.04 + services: mysql: image: mysql:5.7 env: @@ -195,28 +486,9 @@ jobs: --health-interval 10s --health-timeout 5s --health-retries 5 - rabbitmq: - image: rabbitmq:latest - ports: - - 5672:5672 - options: >- - --health-cmd "rabbitmq-diagnostics -q check_port_connectivity" - --health-interval 10s - --health-timeout 5s - --health-retries 5 - redis: - image: redis - ports: - - 6379:6379 - options: >- - --health-cmd "redis-cli ping" - --health-interval 10s - --health-timeout 5s - --health-retries 5 strategy: fail-fast: false matrix: - multiverse: [agent, ai, background, background_2, kafka, database, frameworks, httpclients, httpclients_2, rails, rest] ruby-version: [2.4.10, 3.4.1] steps: @@ -257,7 +529,6 @@ jobs: env: RUBY_VERSION: ${{ matrix.ruby-version }} - - name: Wait for/Check Mysql uses: nick-fields/retry@7152eba30c6575329ac0576536151aca5a72780e # tag v3.0.0 with: @@ -269,13 +540,12 @@ jobs: sleep 1; fi - - name: Run Multiverse Tests uses: nick-fields/retry@7152eba30c6575329ac0576536151aca5a72780e # tag v3.0.0 with: timeout_minutes: 60 max_attempts: 2 - command: bundle exec rake test:multiverse[group="${{ matrix.multiverse }}"] + command: bundle exec rake test:multiverse[group="services_mysql_pg"] env: VERBOSE_TEST_OUTPUT: true MYSQL_PASSWORD: root @@ -296,7 +566,7 @@ jobs: - name: Save coverage results uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # tag v4.3.4 with: - name: coverage-report-multiverse-${{ matrix.ruby-version }}-${{ matrix.multiverse }} + name: coverage-report-multiverse-${{ matrix.ruby-version }}-service_mysql_pg path: lib/coverage_*/.resultset.json retention-days: 2 @@ -306,8 +576,8 @@ jobs: - name: Save gem manifest uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # tag v4.3.4 with: - name: gem_manifest_${{ matrix.ruby-version }}_${{ matrix.multiverse }}.json - path: gem_manifest_${{ matrix.ruby-version }}_${{ matrix.multiverse }}.json + name: gem_manifest_${{ matrix.ruby-version }}_service_mysql_pg.json + path: gem_manifest_${{ matrix.ruby-version }}_service_mysql_pg.json retention-days: 2 diff --git a/.github/workflows/ci_cron.yml b/.github/workflows/ci_cron.yml index a3a8ca809d..fc0d24a070 100644 --- a/.github/workflows/ci_cron.yml +++ b/.github/workflows/ci_cron.yml @@ -124,6 +124,50 @@ jobs: multiverse: + runs-on: ubuntu-22.04 + strategy: + fail-fast: false + matrix: + multiverse: [agent, ai, background, background_2, frameworks, httpclients, httpclients_2, rails, rest] + ruby-version: [2.4.10, 2.5.9, 2.6.10, 2.7.8, 3.0.7, 3.1.6, 3.2.6, 3.3.6, 3.4.1] + steps: + - name: Configure git + run: 'git config --global init.defaultBranch main' + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # tag v4.1.7 + + # - curl is needed for Curb + # - xslt is needed for older Nokogiris, RUBY_VERSION < 2.5 + # - sasl is needed for memcached + - name: Install OS packages + run: sudo apt-get update; sudo apt-get install -y --no-install-recommends libcurl4-nss-dev libsasl2-dev libxslt1-dev + + - name: Install Ruby ${{ matrix.ruby-version }} + uses: ruby/setup-ruby@4a9ddd6f338a97768b8006bf671dfbad383215f4 # tag v1.207.0 + with: + ruby-version: ${{ matrix.ruby-version }} + + - name: Setup bundler + run: ./.github/workflows/scripts/setup_bundler + env: + RUBY_VERSION: ${{ matrix.ruby-version }} + + - name: Run Multiverse Tests + uses: nick-fields/retry@7152eba30c6575329ac0576536151aca5a72780e # tag v3.0.0 + with: + timeout_minutes: 60 + max_attempts: 2 + command: bundle exec rake test:multiverse[group="${{ matrix.multiverse }}"] + env: + VERBOSE_TEST_OUTPUT: true + SERIALIZE: 1 + + - name: Annotate errors + if: ${{ failure() }} + uses: ./.github/actions/annotate + + + multiverse_services_1: + needs: run_rubocop runs-on: ubuntu-22.04 services: elasticsearch7: @@ -138,7 +182,7 @@ jobs: --health-timeout 5s --health-retries 10 elasticsearch8: - image: elasticsearch:8.4.2 + image: elasticsearch:8.13.0 env: discovery.type: single-node xpack.security.enabled: false @@ -149,17 +193,64 @@ jobs: --health-interval 10s --health-timeout 5s --health-retries 10 - zookeeper: - image: bitnami/zookeeper + mongodb: + image: ${{ contains(fromJson('["2.4.10"]'), matrix.ruby-version) && 'mongo:5.0.11' || 'mongo:latest' }} ports: - - 2181:2181 - env: - ALLOW_ANONYMOUS_LOGIN: yes + - 27017:27017 + rabbitmq: + image: rabbitmq:latest + ports: + - 5672:5672 options: >- - --health-cmd "echo mntr | nc -w 2 -q 2 localhost 2181" + --health-cmd "rabbitmq-diagnostics -q check_port_connectivity" --health-interval 10s --health-timeout 5s --health-retries 5 + strategy: + fail-fast: false + matrix: + ruby-version: [2.4.10, 2.5.9, 2.6.10, 2.7.8, 3.0.7, 3.1.6, 3.2.6, 3.3.6, 3.4.1] + + steps: + - name: Configure git + run: 'git config --global init.defaultBranch main' + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # tag v4.1.7 + + # - curl is needed for Curb + # - xslt is needed for older Nokogiris, RUBY_VERSION < 2.5 + # - sasl is needed for memcached + - name: Install OS packages + run: sudo apt-get update; sudo apt-get install -y --no-install-recommends libcurl4-nss-dev libsasl2-dev libxslt1-dev + + - name: Install Ruby ${{ matrix.ruby-version }} + uses: ruby/setup-ruby@4a9ddd6f338a97768b8006bf671dfbad383215f4 # tag v1.207.0 + with: + ruby-version: ${{ matrix.ruby-version }} + + - name: Setup bundler + run: ./.github/workflows/scripts/setup_bundler + env: + RUBY_VERSION: ${{ matrix.ruby-version }} + + - name: Run Multiverse Tests + uses: nick-fields/retry@7152eba30c6575329ac0576536151aca5a72780e # tag v3.0.0 + with: + timeout_minutes: 60 + max_attempts: 2 + command: bundle exec rake test:multiverse[group="services_1"] + env: + VERBOSE_TEST_OUTPUT: true + SERIALIZE: 1 + + - name: Annotate errors + if: ${{ failure() }} + uses: ./.github/actions/annotate + + + multiverse_services_2: + needs: run_rubocop + runs-on: ubuntu-22.04 + services: kafka: image: bitnami/kafka ports: @@ -185,10 +276,133 @@ jobs: --health-interval 10s --health-timeout 5s --health-retries 5 - mongodb: - image: ${{ contains(fromJson('["2.4.10"]'), matrix.ruby-version) && 'mongo:5.0.11' || 'mongo:latest' }} + redis: + image: redis ports: - - 27017:27017 + - 6379:6379 + options: >- + --health-cmd "redis-cli ping" + --health-interval 10s + --health-timeout 5s + --health-retries 5 + strategy: + fail-fast: false + matrix: + ruby-version: [2.4.10, 2.5.9, 2.6.10, 2.7.8, 3.0.7, 3.1.6, 3.2.6, 3.3.6, 3.4.1] + + steps: + - name: Configure git + run: 'git config --global init.defaultBranch main' + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # tag v4.1.7 + + # - curl is needed for Curb + # - xslt is needed for older Nokogiris, RUBY_VERSION < 2.5 + # - sasl is needed for memcached + - name: Install OS packages + run: sudo apt-get update; sudo apt-get install -y --no-install-recommends libcurl4-nss-dev libsasl2-dev libxslt1-dev + + - name: Install Ruby ${{ matrix.ruby-version }} + uses: ruby/setup-ruby@4a9ddd6f338a97768b8006bf671dfbad383215f4 # tag v1.207.0 + with: + ruby-version: ${{ matrix.ruby-version }} + + - name: Setup bundler + run: ./.github/workflows/scripts/setup_bundler + env: + RUBY_VERSION: ${{ matrix.ruby-version }} + + - name: Run Multiverse Tests + uses: nick-fields/retry@7152eba30c6575329ac0576536151aca5a72780e # tag v3.0.0 + with: + timeout_minutes: 60 + max_attempts: 2 + command: bundle exec rake test:multiverse[group="services_2"] + env: + VERBOSE_TEST_OUTPUT: true + SERIALIZE: 1 + + - name: Annotate errors + if: ${{ failure() }} + uses: ./.github/actions/annotate + + + + multiverse_services_kafka: + needs: run_rubocop + runs-on: ubuntu-22.04 + services: + kafka: + image: bitnami/kafka + ports: + - 9092:9092 + options: >- + --health-cmd "kafka-broker-api-versions.sh --version" + --health-interval 10s + --health-timeout 5s + --health-retries 5 + env: + KAFKA_CFG_ZOOKEEPER_CONNECT: zookeeper:2181 + ALLOW_PLAINTEXT_LISTENER: yes + KAFKA_LISTENERS: INSIDE://0.0.0.0:9093,OUTSIDE://0.0.0.0:9092 + KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT + KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE + KAFKA_ADVERTISED_LISTENERS: INSIDE://kafka:9093,OUTSIDE://localhost:9092 + zookeeper: + image: bitnami/zookeeper + ports: + - 2181:2181 + env: + ALLOW_ANONYMOUS_LOGIN: yes + options: >- + --health-cmd "echo mntr | nc -w 2 -q 2 localhost 2181" + --health-interval 10s + --health-timeout 5s + --health-retries 5 + strategy: + fail-fast: false + matrix: + ruby-version: [2.4.10, 2.5.9, 2.6.10, 2.7.8, 3.0.7, 3.1.6, 3.2.6, 3.3.6, 3.4.1] + + steps: + - name: Configure git + run: 'git config --global init.defaultBranch main' + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # tag v4.1.7 + + # - curl is needed for Curb + # - xslt is needed for older Nokogiris, RUBY_VERSION < 2.5 + # - sasl is needed for memcached + - name: Install OS packages + run: sudo apt-get update; sudo apt-get install -y --no-install-recommends libcurl4-nss-dev libsasl2-dev libxslt1-dev + + - name: Install Ruby ${{ matrix.ruby-version }} + uses: ruby/setup-ruby@4a9ddd6f338a97768b8006bf671dfbad383215f4 # tag v1.207.0 + with: + ruby-version: ${{ matrix.ruby-version }} + + - name: Setup bundler + run: ./.github/workflows/scripts/setup_bundler + env: + RUBY_VERSION: ${{ matrix.ruby-version }} + + - name: Run Multiverse Tests + uses: nick-fields/retry@7152eba30c6575329ac0576536151aca5a72780e # tag v3.0.0 + with: + timeout_minutes: 60 + max_attempts: 2 + command: bundle exec rake test:multiverse[group="services_kafka"] + env: + VERBOSE_TEST_OUTPUT: true + SERIALIZE: 1 + + - name: Annotate errors + if: ${{ failure() }} + uses: ./.github/actions/annotate + + + multiverse_services_mysql_pg: + needs: run_rubocop + runs-on: ubuntu-22.04 + services: mysql: image: mysql:5.7 env: @@ -208,29 +422,11 @@ jobs: --health-interval 10s --health-timeout 5s --health-retries 5 - rabbitmq: - image: rabbitmq:latest - ports: - - 5672:5672 - options: >- - --health-cmd "rabbitmq-diagnostics -q check_port_connectivity" - --health-interval 10s - --health-timeout 5s - --health-retries 5 - redis: - image: redis - ports: - - 6379:6379 - options: >- - --health-cmd "redis-cli ping" - --health-interval 10s - --health-timeout 5s - --health-retries 5 strategy: fail-fast: false matrix: - multiverse: [agent, ai, background, background_2, database, kafka, frameworks, httpclients, httpclients_2, rails, rest] ruby-version: [2.4.10, 2.5.9, 2.6.10, 2.7.8, 3.0.7, 3.1.6, 3.2.6, 3.3.6, 3.4.1] + steps: - name: Configure git run: 'git config --global init.defaultBranch main' @@ -247,8 +443,9 @@ jobs: with: ruby-version: ${{ matrix.ruby-version }} + # This allows the cache in the following step to be able to write files to the directory needed for mysql - if: matrix.ruby-version == '2.4.10' - name: Prepare mysql dirextory + name: Prepare mysql directory run: sudo chown -R $USER /usr/local - if: matrix.ruby-version == '2.4.10' @@ -259,7 +456,7 @@ jobs: path: /usr/local/mysql55 key: mysql55-install - - if: steps.mysql55-cache.outputs.cache-hit != 'true' && ( matrix.ruby-version == '2.4.10') + - if: steps.mysql55-cache.outputs.cache-hit != 'true' && matrix.ruby-version == '2.4.10' name: Install mysql55 run: sudo ./test/script/install_mysql55 @@ -280,13 +477,12 @@ jobs: sleep 1; fi - - name: Run Multiverse Tests uses: nick-fields/retry@7152eba30c6575329ac0576536151aca5a72780e # tag v3.0.0 with: timeout_minutes: 60 max_attempts: 2 - command: bundle exec rake test:multiverse[group="${{ matrix.multiverse }}"] + command: bundle exec rake test:multiverse[group="services_mysql_pg"] env: VERBOSE_TEST_OUTPUT: true DB_PASSWORD: root @@ -303,6 +499,8 @@ jobs: uses: ./.github/actions/annotate + + infinite_tracing: runs-on: ubuntu-22.04 strategy: diff --git a/test/multiverse/lib/multiverse/runner.rb b/test/multiverse/lib/multiverse/runner.rb index a7470ed51e..0fa2d9c9a9 100644 --- a/test/multiverse/lib/multiverse/runner.rb +++ b/test/multiverse/lib/multiverse/runner.rb @@ -100,14 +100,19 @@ def execute_suites(filter, opts) GROUPS = { 'agent' => %w[agent_only bare config_file_loading deferred_instrumentation high_security no_json json marshalling thread yajl], 'ai' => %w[ruby_openai], - 'background' => %w[delayed_job sidekiq resque], + 'background' => %w[delayed_job resque], 'background_2' => %w[rake], - 'kafka' => %w[rdkafka], - 'database' => %w[elasticsearch mongo redis sequel], - 'rails' => %w[active_record active_record_pg active_support_broadcast_logger active_support_logger rails rails_prepend activemerchant], 'frameworks' => %w[grape padrino roda sinatra], 'httpclients' => %w[async_http curb excon httpclient], 'httpclients_2' => %w[typhoeus net_http httprb ethon httpx], + 'rails' => %w[active_support_broadcast_logger active_support_logger rails rails_prepend activemerchant], + + # these need services running in github actions, so they are separated + 'services_1' => %w[elasticsearch mongo bunny], + 'services_2' => %w[redis sidekiq memcache], + 'services_kafka' => %w[rdkafka ruby_kafka], + 'services_mysql_pg' => %w[active_record active_record_pg], + 'infinite_tracing' => %w[infinite_tracing], 'rest' => [] # Specially handled below