karafka-rdkafka 0.20.0-arm64-darwin
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
 - data/.github/CODEOWNERS +3 -0
 - data/.github/FUNDING.yml +1 -0
 - data/.github/workflows/ci_linux_x86_64_gnu.yml +249 -0
 - data/.github/workflows/ci_linux_x86_64_musl.yml +205 -0
 - data/.github/workflows/ci_macos_arm64.yml +306 -0
 - data/.github/workflows/push_linux_x86_64_gnu.yml +64 -0
 - data/.github/workflows/push_linux_x86_64_musl.yml +77 -0
 - data/.github/workflows/push_macos_arm64.yml +54 -0
 - data/.github/workflows/push_ruby.yml +37 -0
 - data/.github/workflows/verify-action-pins.yml +16 -0
 - data/.gitignore +15 -0
 - data/.rspec +2 -0
 - data/.ruby-gemset +1 -0
 - data/.ruby-version +1 -0
 - data/.yardopts +2 -0
 - data/CHANGELOG.md +330 -0
 - data/Gemfile +5 -0
 - data/MIT-LICENSE +22 -0
 - data/README.md +177 -0
 - data/Rakefile +96 -0
 - data/docker-compose.yml +25 -0
 - data/ext/README.md +19 -0
 - data/ext/Rakefile +131 -0
 - data/ext/build_common.sh +361 -0
 - data/ext/build_linux_x86_64_gnu.sh +306 -0
 - data/ext/build_linux_x86_64_musl.sh +763 -0
 - data/ext/build_macos_arm64.sh +550 -0
 - data/ext/librdkafka.dylib +0 -0
 - data/karafka-rdkafka.gemspec +88 -0
 - data/lib/rdkafka/abstract_handle.rb +116 -0
 - data/lib/rdkafka/admin/acl_binding_result.rb +51 -0
 - data/lib/rdkafka/admin/config_binding_result.rb +30 -0
 - data/lib/rdkafka/admin/config_resource_binding_result.rb +18 -0
 - data/lib/rdkafka/admin/create_acl_handle.rb +28 -0
 - data/lib/rdkafka/admin/create_acl_report.rb +24 -0
 - data/lib/rdkafka/admin/create_partitions_handle.rb +30 -0
 - data/lib/rdkafka/admin/create_partitions_report.rb +6 -0
 - data/lib/rdkafka/admin/create_topic_handle.rb +32 -0
 - data/lib/rdkafka/admin/create_topic_report.rb +24 -0
 - data/lib/rdkafka/admin/delete_acl_handle.rb +30 -0
 - data/lib/rdkafka/admin/delete_acl_report.rb +23 -0
 - data/lib/rdkafka/admin/delete_groups_handle.rb +28 -0
 - data/lib/rdkafka/admin/delete_groups_report.rb +24 -0
 - data/lib/rdkafka/admin/delete_topic_handle.rb +32 -0
 - data/lib/rdkafka/admin/delete_topic_report.rb +24 -0
 - data/lib/rdkafka/admin/describe_acl_handle.rb +30 -0
 - data/lib/rdkafka/admin/describe_acl_report.rb +24 -0
 - data/lib/rdkafka/admin/describe_configs_handle.rb +33 -0
 - data/lib/rdkafka/admin/describe_configs_report.rb +48 -0
 - data/lib/rdkafka/admin/incremental_alter_configs_handle.rb +33 -0
 - data/lib/rdkafka/admin/incremental_alter_configs_report.rb +48 -0
 - data/lib/rdkafka/admin.rb +832 -0
 - data/lib/rdkafka/bindings.rb +584 -0
 - data/lib/rdkafka/callbacks.rb +415 -0
 - data/lib/rdkafka/config.rb +398 -0
 - data/lib/rdkafka/consumer/headers.rb +79 -0
 - data/lib/rdkafka/consumer/message.rb +86 -0
 - data/lib/rdkafka/consumer/partition.rb +57 -0
 - data/lib/rdkafka/consumer/topic_partition_list.rb +190 -0
 - data/lib/rdkafka/consumer.rb +663 -0
 - data/lib/rdkafka/error.rb +201 -0
 - data/lib/rdkafka/helpers/oauth.rb +58 -0
 - data/lib/rdkafka/helpers/time.rb +14 -0
 - data/lib/rdkafka/metadata.rb +115 -0
 - data/lib/rdkafka/native_kafka.rb +139 -0
 - data/lib/rdkafka/producer/delivery_handle.rb +48 -0
 - data/lib/rdkafka/producer/delivery_report.rb +45 -0
 - data/lib/rdkafka/producer/partitions_count_cache.rb +216 -0
 - data/lib/rdkafka/producer.rb +497 -0
 - data/lib/rdkafka/version.rb +7 -0
 - data/lib/rdkafka.rb +54 -0
 - data/renovate.json +92 -0
 - data/spec/rdkafka/abstract_handle_spec.rb +117 -0
 - data/spec/rdkafka/admin/create_acl_handle_spec.rb +56 -0
 - data/spec/rdkafka/admin/create_acl_report_spec.rb +18 -0
 - data/spec/rdkafka/admin/create_topic_handle_spec.rb +54 -0
 - data/spec/rdkafka/admin/create_topic_report_spec.rb +16 -0
 - data/spec/rdkafka/admin/delete_acl_handle_spec.rb +85 -0
 - data/spec/rdkafka/admin/delete_acl_report_spec.rb +72 -0
 - data/spec/rdkafka/admin/delete_topic_handle_spec.rb +54 -0
 - data/spec/rdkafka/admin/delete_topic_report_spec.rb +16 -0
 - data/spec/rdkafka/admin/describe_acl_handle_spec.rb +85 -0
 - data/spec/rdkafka/admin/describe_acl_report_spec.rb +73 -0
 - data/spec/rdkafka/admin_spec.rb +970 -0
 - data/spec/rdkafka/bindings_spec.rb +198 -0
 - data/spec/rdkafka/callbacks_spec.rb +20 -0
 - data/spec/rdkafka/config_spec.rb +258 -0
 - data/spec/rdkafka/consumer/headers_spec.rb +73 -0
 - data/spec/rdkafka/consumer/message_spec.rb +139 -0
 - data/spec/rdkafka/consumer/partition_spec.rb +57 -0
 - data/spec/rdkafka/consumer/topic_partition_list_spec.rb +248 -0
 - data/spec/rdkafka/consumer_spec.rb +1296 -0
 - data/spec/rdkafka/error_spec.rb +95 -0
 - data/spec/rdkafka/metadata_spec.rb +79 -0
 - data/spec/rdkafka/native_kafka_spec.rb +130 -0
 - data/spec/rdkafka/producer/delivery_handle_spec.rb +60 -0
 - data/spec/rdkafka/producer/delivery_report_spec.rb +25 -0
 - data/spec/rdkafka/producer/partitions_count_cache_spec.rb +359 -0
 - data/spec/rdkafka/producer_spec.rb +1528 -0
 - data/spec/spec_helper.rb +195 -0
 - metadata +275 -0
 
    
        checksums.yaml
    ADDED
    
    | 
         @@ -0,0 +1,7 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            ---
         
     | 
| 
      
 2 
     | 
    
         
            +
            SHA256:
         
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 55905d58dcd86aab93106f1b63d1729d0ea1bb31f08916b50fdc3d38ec578cd5
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: d70844de2dddda33a8de958f68553b5e34a9f40ba7dec6c907accbffd4739201
         
     | 
| 
      
 5 
     | 
    
         
            +
            SHA512:
         
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 58a2ac1a9d4d5da31ca0ec9d6a6f89385fa17c289ec8e6abd670361683e3607d1d4d005bb90061ca990d2bc4d8a3e9d5ba1c4ad94843e415c80b700a12eb8d31
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: b187befd3bc28caa3184359b92739040be01af48e554913aeb079ece9493398917b3112077ca72fa270a71afe132232a2bcf793c8ff0377985be9a79439d89a6
         
     | 
    
        data/.github/CODEOWNERS
    ADDED
    
    
    
        data/.github/FUNDING.yml
    ADDED
    
    | 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            custom: ['https://karafka.io/#become-pro']
         
     | 
| 
         @@ -0,0 +1,249 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            name: CI Linux x86_64 GNU
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            concurrency:
         
     | 
| 
      
 4 
     | 
    
         
            +
              group: ${{ github.workflow }}-${{ github.ref }}
         
     | 
| 
      
 5 
     | 
    
         
            +
              cancel-in-progress: true
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            on:
         
     | 
| 
      
 8 
     | 
    
         
            +
              pull_request:
         
     | 
| 
      
 9 
     | 
    
         
            +
                branches: [ main, master ]
         
     | 
| 
      
 10 
     | 
    
         
            +
              push:
         
     | 
| 
      
 11 
     | 
    
         
            +
                branches: [ main, master ]
         
     | 
| 
      
 12 
     | 
    
         
            +
              schedule:
         
     | 
| 
      
 13 
     | 
    
         
            +
                - cron: '0 1 * * *'
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            permissions:
         
     | 
| 
      
 16 
     | 
    
         
            +
              contents: read
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            env:
         
     | 
| 
      
 19 
     | 
    
         
            +
              BUNDLE_RETRY: 6
         
     | 
| 
      
 20 
     | 
    
         
            +
              BUNDLE_JOBS: 4
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            jobs:
         
     | 
| 
      
 23 
     | 
    
         
            +
              build_install:
         
     | 
| 
      
 24 
     | 
    
         
            +
                timeout-minutes: 30
         
     | 
| 
      
 25 
     | 
    
         
            +
                runs-on: ubuntu-latest
         
     | 
| 
      
 26 
     | 
    
         
            +
                steps:
         
     | 
| 
      
 27 
     | 
    
         
            +
                  - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
         
     | 
| 
      
 28 
     | 
    
         
            +
                    with:
         
     | 
| 
      
 29 
     | 
    
         
            +
                      fetch-depth: 0
         
     | 
| 
      
 30 
     | 
    
         
            +
                  - name: Install package dependencies
         
     | 
| 
      
 31 
     | 
    
         
            +
                    run: "[ -e $APT_DEPS ] || sudo apt-get install -y --no-install-recommends $APT_DEPS"
         
     | 
| 
      
 32 
     | 
    
         
            +
                  - name: Set up Ruby
         
     | 
| 
      
 33 
     | 
    
         
            +
                    uses: ruby/setup-ruby@a4effe49ee8ee5b8b5091268c473a4628afb5651 # v1.245.0
         
     | 
| 
      
 34 
     | 
    
         
            +
                    with:
         
     | 
| 
      
 35 
     | 
    
         
            +
                      ruby-version: '3.4'  # Use one Ruby version for building
         
     | 
| 
      
 36 
     | 
    
         
            +
                      bundler-cache: false
         
     | 
| 
      
 37 
     | 
    
         
            +
                  - name: Build gem with mini_portile
         
     | 
| 
      
 38 
     | 
    
         
            +
                    run: |
         
     | 
| 
      
 39 
     | 
    
         
            +
                      set -e
         
     | 
| 
      
 40 
     | 
    
         
            +
                      bundle install
         
     | 
| 
      
 41 
     | 
    
         
            +
                      cd ext && bundle exec rake
         
     | 
| 
      
 42 
     | 
    
         
            +
                      cd ..
         
     | 
| 
      
 43 
     | 
    
         
            +
                  - name: Upload built gem and bundle
         
     | 
| 
      
 44 
     | 
    
         
            +
                    uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
         
     | 
| 
      
 45 
     | 
    
         
            +
                    with:
         
     | 
| 
      
 46 
     | 
    
         
            +
                      name: rdkafka-built-gem
         
     | 
| 
      
 47 
     | 
    
         
            +
                      path: |
         
     | 
| 
      
 48 
     | 
    
         
            +
                        vendor/bundle/
         
     | 
| 
      
 49 
     | 
    
         
            +
                        .bundle/
         
     | 
| 
      
 50 
     | 
    
         
            +
                        ext/
         
     | 
| 
      
 51 
     | 
    
         
            +
                        lib/
         
     | 
| 
      
 52 
     | 
    
         
            +
                      retention-days: 1
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
              specs_install:
         
     | 
| 
      
 55 
     | 
    
         
            +
                timeout-minutes: 30
         
     | 
| 
      
 56 
     | 
    
         
            +
                runs-on: ubuntu-latest
         
     | 
| 
      
 57 
     | 
    
         
            +
                needs: build_install
         
     | 
| 
      
 58 
     | 
    
         
            +
                strategy:
         
     | 
| 
      
 59 
     | 
    
         
            +
                  fail-fast: false
         
     | 
| 
      
 60 
     | 
    
         
            +
                  matrix:
         
     | 
| 
      
 61 
     | 
    
         
            +
                    ruby:
         
     | 
| 
      
 62 
     | 
    
         
            +
                      - '3.5.0-preview1'
         
     | 
| 
      
 63 
     | 
    
         
            +
                      - '3.4'
         
     | 
| 
      
 64 
     | 
    
         
            +
                      - '3.3'
         
     | 
| 
      
 65 
     | 
    
         
            +
                      - '3.2'
         
     | 
| 
      
 66 
     | 
    
         
            +
                      - '3.1'
         
     | 
| 
      
 67 
     | 
    
         
            +
                      - 'jruby-10.0'
         
     | 
| 
      
 68 
     | 
    
         
            +
                    include:
         
     | 
| 
      
 69 
     | 
    
         
            +
                      - ruby: '3.4'
         
     | 
| 
      
 70 
     | 
    
         
            +
                        coverage: 'true'
         
     | 
| 
      
 71 
     | 
    
         
            +
                      - ruby: 'jruby-10.0'
         
     | 
| 
      
 72 
     | 
    
         
            +
                        continue-on-error: true
         
     | 
| 
      
 73 
     | 
    
         
            +
                steps:
         
     | 
| 
      
 74 
     | 
    
         
            +
                  - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
         
     | 
| 
      
 75 
     | 
    
         
            +
                    with:
         
     | 
| 
      
 76 
     | 
    
         
            +
                      fetch-depth: 0
         
     | 
| 
      
 77 
     | 
    
         
            +
                  - name: Download built gem
         
     | 
| 
      
 78 
     | 
    
         
            +
                    uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
         
     | 
| 
      
 79 
     | 
    
         
            +
                    with:
         
     | 
| 
      
 80 
     | 
    
         
            +
                      name: rdkafka-built-gem
         
     | 
| 
      
 81 
     | 
    
         
            +
                      path: ./
         
     | 
| 
      
 82 
     | 
    
         
            +
                  - name: Set up Ruby
         
     | 
| 
      
 83 
     | 
    
         
            +
                    uses: ruby/setup-ruby@a4effe49ee8ee5b8b5091268c473a4628afb5651 # v1.245.0
         
     | 
| 
      
 84 
     | 
    
         
            +
                    with:
         
     | 
| 
      
 85 
     | 
    
         
            +
                      ruby-version: ${{matrix.ruby}}
         
     | 
| 
      
 86 
     | 
    
         
            +
                      bundler-cache: false
         
     | 
| 
      
 87 
     | 
    
         
            +
                  - name: Start Kafka with Docker Compose
         
     | 
| 
      
 88 
     | 
    
         
            +
                    run: |
         
     | 
| 
      
 89 
     | 
    
         
            +
                      docker compose up -d
         
     | 
| 
      
 90 
     | 
    
         
            +
                      echo "Waiting for Kafka to be ready..."
         
     | 
| 
      
 91 
     | 
    
         
            +
             
     | 
| 
      
 92 
     | 
    
         
            +
                      sleep 10
         
     | 
| 
      
 93 
     | 
    
         
            +
             
     | 
| 
      
 94 
     | 
    
         
            +
                      echo "=== Container status ==="
         
     | 
| 
      
 95 
     | 
    
         
            +
                      docker compose ps kafka
         
     | 
| 
      
 96 
     | 
    
         
            +
             
     | 
| 
      
 97 
     | 
    
         
            +
                      for i in {1..30}; do
         
     | 
| 
      
 98 
     | 
    
         
            +
                        echo "=== Attempt $i/30 ==="
         
     | 
| 
      
 99 
     | 
    
         
            +
             
     | 
| 
      
 100 
     | 
    
         
            +
                        echo "Testing kafka-topics command..."
         
     | 
| 
      
 101 
     | 
    
         
            +
                        if docker compose exec -T kafka kafka-topics --bootstrap-server localhost:9092 --list >/dev/null 2>&1; then
         
     | 
| 
      
 102 
     | 
    
         
            +
                          echo "Kafka topics command succeeded!"
         
     | 
| 
      
 103 
     | 
    
         
            +
                          break
         
     | 
| 
      
 104 
     | 
    
         
            +
                        else
         
     | 
| 
      
 105 
     | 
    
         
            +
                          echo "Kafka topics command failed (exit code: $?)"
         
     | 
| 
      
 106 
     | 
    
         
            +
                        fi
         
     | 
| 
      
 107 
     | 
    
         
            +
             
     | 
| 
      
 108 
     | 
    
         
            +
                        echo "Sleeping 2 seconds..."
         
     | 
| 
      
 109 
     | 
    
         
            +
                        sleep 2
         
     | 
| 
      
 110 
     | 
    
         
            +
                      done
         
     | 
| 
      
 111 
     | 
    
         
            +
                  - name: Install remaining dependencies
         
     | 
| 
      
 112 
     | 
    
         
            +
                    env:
         
     | 
| 
      
 113 
     | 
    
         
            +
                      RDKAFKA_EXT_PATH: ${{ github.workspace }}/ext
         
     | 
| 
      
 114 
     | 
    
         
            +
                    run: |
         
     | 
| 
      
 115 
     | 
    
         
            +
                      # Only install gems that aren't Ruby-version specific
         
     | 
| 
      
 116 
     | 
    
         
            +
                      bundle install
         
     | 
| 
      
 117 
     | 
    
         
            +
                  - name: Run all specs
         
     | 
| 
      
 118 
     | 
    
         
            +
                    env:
         
     | 
| 
      
 119 
     | 
    
         
            +
                      GITHUB_COVERAGE: ${{matrix.coverage}}
         
     | 
| 
      
 120 
     | 
    
         
            +
                      RDKAFKA_EXT_PATH: ${{ github.workspace }}/ext
         
     | 
| 
      
 121 
     | 
    
         
            +
                    continue-on-error: ${{ matrix.continue-on-error || false }}
         
     | 
| 
      
 122 
     | 
    
         
            +
                    run: |
         
     | 
| 
      
 123 
     | 
    
         
            +
                      bundle exec rspec
         
     | 
| 
      
 124 
     | 
    
         
            +
             
     | 
| 
      
 125 
     | 
    
         
            +
              build_precompiled:
         
     | 
| 
      
 126 
     | 
    
         
            +
                timeout-minutes: 30
         
     | 
| 
      
 127 
     | 
    
         
            +
                runs-on: ubuntu-latest
         
     | 
| 
      
 128 
     | 
    
         
            +
                steps:
         
     | 
| 
      
 129 
     | 
    
         
            +
                  - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
         
     | 
| 
      
 130 
     | 
    
         
            +
                    with:
         
     | 
| 
      
 131 
     | 
    
         
            +
                      fetch-depth: 0
         
     | 
| 
      
 132 
     | 
    
         
            +
                  - name: Install build dependencies
         
     | 
| 
      
 133 
     | 
    
         
            +
                    run: |
         
     | 
| 
      
 134 
     | 
    
         
            +
                      sudo apt-get update
         
     | 
| 
      
 135 
     | 
    
         
            +
                      sudo apt-get install -y --no-install-recommends \
         
     | 
| 
      
 136 
     | 
    
         
            +
                        build-essential \
         
     | 
| 
      
 137 
     | 
    
         
            +
                        gcc \
         
     | 
| 
      
 138 
     | 
    
         
            +
                        make \
         
     | 
| 
      
 139 
     | 
    
         
            +
                        patch \
         
     | 
| 
      
 140 
     | 
    
         
            +
                        tar \
         
     | 
| 
      
 141 
     | 
    
         
            +
                        wget \
         
     | 
| 
      
 142 
     | 
    
         
            +
                        ca-certificates \
         
     | 
| 
      
 143 
     | 
    
         
            +
                        libsasl2-dev \
         
     | 
| 
      
 144 
     | 
    
         
            +
                        libssl-dev \
         
     | 
| 
      
 145 
     | 
    
         
            +
                        zlib1g-dev \
         
     | 
| 
      
 146 
     | 
    
         
            +
                        libzstd-dev
         
     | 
| 
      
 147 
     | 
    
         
            +
                  - name: Cache build-tmp directory
         
     | 
| 
      
 148 
     | 
    
         
            +
                    uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
         
     | 
| 
      
 149 
     | 
    
         
            +
                    with:
         
     | 
| 
      
 150 
     | 
    
         
            +
                      path: ext/build-tmp
         
     | 
| 
      
 151 
     | 
    
         
            +
                      key: build-tmp-${{ runner.os }}-${{ hashFiles('ext/*.sh', 'ext/Rakefile') }}-v2
         
     | 
| 
      
 152 
     | 
    
         
            +
                  - name: Build precompiled librdkafka.so
         
     | 
| 
      
 153 
     | 
    
         
            +
                    run: |
         
     | 
| 
      
 154 
     | 
    
         
            +
                      cd ext
         
     | 
| 
      
 155 
     | 
    
         
            +
                      ./build_linux_x86_64_gnu.sh
         
     | 
| 
      
 156 
     | 
    
         
            +
                  - name: Upload precompiled library
         
     | 
| 
      
 157 
     | 
    
         
            +
                    uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
         
     | 
| 
      
 158 
     | 
    
         
            +
                    with:
         
     | 
| 
      
 159 
     | 
    
         
            +
                      name: librdkafka-precompiled-linux
         
     | 
| 
      
 160 
     | 
    
         
            +
                      path: ext/
         
     | 
| 
      
 161 
     | 
    
         
            +
                      retention-days: 1
         
     | 
| 
      
 162 
     | 
    
         
            +
             
     | 
| 
      
 163 
     | 
    
         
            +
              specs_precompiled:
         
     | 
| 
      
 164 
     | 
    
         
            +
                timeout-minutes: 30
         
     | 
| 
      
 165 
     | 
    
         
            +
                runs-on: ubuntu-latest
         
     | 
| 
      
 166 
     | 
    
         
            +
                needs: build_precompiled
         
     | 
| 
      
 167 
     | 
    
         
            +
                strategy:
         
     | 
| 
      
 168 
     | 
    
         
            +
                  fail-fast: false
         
     | 
| 
      
 169 
     | 
    
         
            +
                  matrix:
         
     | 
| 
      
 170 
     | 
    
         
            +
                    ruby:
         
     | 
| 
      
 171 
     | 
    
         
            +
                      - '3.5.0-preview1'
         
     | 
| 
      
 172 
     | 
    
         
            +
                      - '3.4'
         
     | 
| 
      
 173 
     | 
    
         
            +
                      - '3.3'
         
     | 
| 
      
 174 
     | 
    
         
            +
                      - '3.2'
         
     | 
| 
      
 175 
     | 
    
         
            +
                      - '3.1'
         
     | 
| 
      
 176 
     | 
    
         
            +
                    include:
         
     | 
| 
      
 177 
     | 
    
         
            +
                      - ruby: '3.4'
         
     | 
| 
      
 178 
     | 
    
         
            +
                        coverage: 'true'
         
     | 
| 
      
 179 
     | 
    
         
            +
                steps:
         
     | 
| 
      
 180 
     | 
    
         
            +
                  - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
         
     | 
| 
      
 181 
     | 
    
         
            +
                    with:
         
     | 
| 
      
 182 
     | 
    
         
            +
                      fetch-depth: 0
         
     | 
| 
      
 183 
     | 
    
         
            +
                  - name: Download precompiled library
         
     | 
| 
      
 184 
     | 
    
         
            +
                    uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
         
     | 
| 
      
 185 
     | 
    
         
            +
                    with:
         
     | 
| 
      
 186 
     | 
    
         
            +
                      name: librdkafka-precompiled-linux
         
     | 
| 
      
 187 
     | 
    
         
            +
                      path: ext/
         
     | 
| 
      
 188 
     | 
    
         
            +
                  - name: Set up Ruby
         
     | 
| 
      
 189 
     | 
    
         
            +
                    uses: ruby/setup-ruby@a4effe49ee8ee5b8b5091268c473a4628afb5651 # v1.245.0
         
     | 
| 
      
 190 
     | 
    
         
            +
                    with:
         
     | 
| 
      
 191 
     | 
    
         
            +
                      ruby-version: ${{ matrix.ruby }}
         
     | 
| 
      
 192 
     | 
    
         
            +
                      bundler-cache: false
         
     | 
| 
      
 193 
     | 
    
         
            +
                  - name: Start Kafka with Docker Compose
         
     | 
| 
      
 194 
     | 
    
         
            +
                    run: |
         
     | 
| 
      
 195 
     | 
    
         
            +
                      docker compose up -d
         
     | 
| 
      
 196 
     | 
    
         
            +
                      echo "Waiting for Kafka to be ready..."
         
     | 
| 
      
 197 
     | 
    
         
            +
             
     | 
| 
      
 198 
     | 
    
         
            +
                      sleep 10
         
     | 
| 
      
 199 
     | 
    
         
            +
             
     | 
| 
      
 200 
     | 
    
         
            +
                      echo "=== Container status ==="
         
     | 
| 
      
 201 
     | 
    
         
            +
                      docker compose ps kafka
         
     | 
| 
      
 202 
     | 
    
         
            +
             
     | 
| 
      
 203 
     | 
    
         
            +
                      for i in {1..30}; do
         
     | 
| 
      
 204 
     | 
    
         
            +
                        echo "=== Attempt $i/30 ==="
         
     | 
| 
      
 205 
     | 
    
         
            +
             
     | 
| 
      
 206 
     | 
    
         
            +
                        echo "Testing kafka-topics command..."
         
     | 
| 
      
 207 
     | 
    
         
            +
                        if docker compose exec -T kafka kafka-topics --bootstrap-server localhost:9092 --list >/dev/null 2>&1; then
         
     | 
| 
      
 208 
     | 
    
         
            +
                          echo "Kafka topics command succeeded!"
         
     | 
| 
      
 209 
     | 
    
         
            +
                          break
         
     | 
| 
      
 210 
     | 
    
         
            +
                        else
         
     | 
| 
      
 211 
     | 
    
         
            +
                          echo "Kafka topics command failed (exit code: $?)"
         
     | 
| 
      
 212 
     | 
    
         
            +
                        fi
         
     | 
| 
      
 213 
     | 
    
         
            +
             
     | 
| 
      
 214 
     | 
    
         
            +
                        echo "Sleeping 2 seconds..."
         
     | 
| 
      
 215 
     | 
    
         
            +
                        sleep 2
         
     | 
| 
      
 216 
     | 
    
         
            +
                      done
         
     | 
| 
      
 217 
     | 
    
         
            +
                  - name: Install bundle with precompiled library
         
     | 
| 
      
 218 
     | 
    
         
            +
                    env:
         
     | 
| 
      
 219 
     | 
    
         
            +
                      GITHUB_COVERAGE: ${{ matrix.coverage }}
         
     | 
| 
      
 220 
     | 
    
         
            +
                      RDKAFKA_EXT_PATH: ${{ github.workspace }}/ext
         
     | 
| 
      
 221 
     | 
    
         
            +
                    run: |
         
     | 
| 
      
 222 
     | 
    
         
            +
                      bundle install
         
     | 
| 
      
 223 
     | 
    
         
            +
                      echo "Bundle install completed with precompiled library"
         
     | 
| 
      
 224 
     | 
    
         
            +
                  - name: Remove build dependencies to test static linking
         
     | 
| 
      
 225 
     | 
    
         
            +
                    continue-on-error: true
         
     | 
| 
      
 226 
     | 
    
         
            +
                    run: |
         
     | 
| 
      
 227 
     | 
    
         
            +
                      echo "Removing build dependencies to verify precompiled library is truly self-contained..."
         
     | 
| 
      
 228 
     | 
    
         
            +
             
     | 
| 
      
 229 
     | 
    
         
            +
                      # Remove packages one by one to avoid dependency conflicts
         
     | 
| 
      
 230 
     | 
    
         
            +
                      packages_to_remove="build-essential gcc g++ make patch tar wget libsasl2-dev libssl-dev zlib1g-dev libzstd-dev"
         
     | 
| 
      
 231 
     | 
    
         
            +
             
     | 
| 
      
 232 
     | 
    
         
            +
                      for package in $packages_to_remove; do
         
     | 
| 
      
 233 
     | 
    
         
            +
                        if dpkg -l | grep -q "^ii.*$package "; then
         
     | 
| 
      
 234 
     | 
    
         
            +
                          echo "Removing $package..."
         
     | 
| 
      
 235 
     | 
    
         
            +
                          sudo dpkg --remove --force-depends $package 2>/dev/null || echo "Could not remove $package"
         
     | 
| 
      
 236 
     | 
    
         
            +
                        else
         
     | 
| 
      
 237 
     | 
    
         
            +
                          echo "$package is not installed"
         
     | 
| 
      
 238 
     | 
    
         
            +
                        fi
         
     | 
| 
      
 239 
     | 
    
         
            +
                      done
         
     | 
| 
      
 240 
     | 
    
         
            +
             
     | 
| 
      
 241 
     | 
    
         
            +
                      echo "Build dependencies removal completed"
         
     | 
| 
      
 242 
     | 
    
         
            +
                      echo "Remaining build tools:"
         
     | 
| 
      
 243 
     | 
    
         
            +
                      which gcc g++ make 2>/dev/null || echo "No build tools found in PATH (good!)"
         
     | 
| 
      
 244 
     | 
    
         
            +
                  - name: Run specs with precompiled library
         
     | 
| 
      
 245 
     | 
    
         
            +
                    env:
         
     | 
| 
      
 246 
     | 
    
         
            +
                      GITHUB_COVERAGE: ${{ matrix.coverage }}
         
     | 
| 
      
 247 
     | 
    
         
            +
                      RDKAFKA_EXT_PATH: ${{ github.workspace }}/ext
         
     | 
| 
      
 248 
     | 
    
         
            +
                    run: |
         
     | 
| 
      
 249 
     | 
    
         
            +
                      bundle exec rspec
         
     | 
| 
         @@ -0,0 +1,205 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            name: CI Linux x86_64 musl
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            concurrency:
         
     | 
| 
      
 4 
     | 
    
         
            +
              group: ${{ github.workflow }}-${{ github.ref }}
         
     | 
| 
      
 5 
     | 
    
         
            +
              cancel-in-progress: true
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            on:
         
     | 
| 
      
 8 
     | 
    
         
            +
              pull_request:
         
     | 
| 
      
 9 
     | 
    
         
            +
                branches: [ main, master ]
         
     | 
| 
      
 10 
     | 
    
         
            +
              push:
         
     | 
| 
      
 11 
     | 
    
         
            +
                branches: [ main, master ]
         
     | 
| 
      
 12 
     | 
    
         
            +
              schedule:
         
     | 
| 
      
 13 
     | 
    
         
            +
                - cron: '0 1 * * *'
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            permissions:
         
     | 
| 
      
 16 
     | 
    
         
            +
              contents: read
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            env:
         
     | 
| 
      
 19 
     | 
    
         
            +
              BUNDLE_RETRY: 6
         
     | 
| 
      
 20 
     | 
    
         
            +
              BUNDLE_JOBS: 4
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            jobs:
         
     | 
| 
      
 23 
     | 
    
         
            +
              build_install:
         
     | 
| 
      
 24 
     | 
    
         
            +
                timeout-minutes: 30
         
     | 
| 
      
 25 
     | 
    
         
            +
                runs-on: ubuntu-latest
         
     | 
| 
      
 26 
     | 
    
         
            +
                container:
         
     | 
| 
      
 27 
     | 
    
         
            +
                  image: alpine:3.22@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1
         
     | 
| 
      
 28 
     | 
    
         
            +
                steps:
         
     | 
| 
      
 29 
     | 
    
         
            +
                  - name: Install dependencies
         
     | 
| 
      
 30 
     | 
    
         
            +
                    run: |
         
     | 
| 
      
 31 
     | 
    
         
            +
                      apk add --no-cache git curl ca-certificates build-base linux-headers \
         
     | 
| 
      
 32 
     | 
    
         
            +
                        pkgconf perl autoconf automake libtool bison flex file \
         
     | 
| 
      
 33 
     | 
    
         
            +
                        ruby ruby-dev ruby-bundler bash zstd-dev zlib zlib-dev openssl-dev cyrus-sasl-dev
         
     | 
| 
      
 34 
     | 
    
         
            +
                  - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
         
     | 
| 
      
 35 
     | 
    
         
            +
                    with:
         
     | 
| 
      
 36 
     | 
    
         
            +
                      fetch-depth: 0
         
     | 
| 
      
 37 
     | 
    
         
            +
                  - name: Configure git safe directory
         
     | 
| 
      
 38 
     | 
    
         
            +
                    run: git config --global --add safe.directory /__w/karafka-rdkafka/karafka-rdkafka
         
     | 
| 
      
 39 
     | 
    
         
            +
                  - name: Build gem with mini_portile
         
     | 
| 
      
 40 
     | 
    
         
            +
                    run: |
         
     | 
| 
      
 41 
     | 
    
         
            +
                      set -e
         
     | 
| 
      
 42 
     | 
    
         
            +
                      bundle config set --local path 'vendor/bundle'
         
     | 
| 
      
 43 
     | 
    
         
            +
                      bundle install
         
     | 
| 
      
 44 
     | 
    
         
            +
                      cd ext && bundle exec rake
         
     | 
| 
      
 45 
     | 
    
         
            +
                      cd ..
         
     | 
| 
      
 46 
     | 
    
         
            +
                  - name: Upload built gem and bundle
         
     | 
| 
      
 47 
     | 
    
         
            +
                    uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
         
     | 
| 
      
 48 
     | 
    
         
            +
                    with:
         
     | 
| 
      
 49 
     | 
    
         
            +
                      name: rdkafka-built-gem-musl
         
     | 
| 
      
 50 
     | 
    
         
            +
                      path: |
         
     | 
| 
      
 51 
     | 
    
         
            +
                        vendor/bundle/
         
     | 
| 
      
 52 
     | 
    
         
            +
                        .bundle/
         
     | 
| 
      
 53 
     | 
    
         
            +
                        ext/
         
     | 
| 
      
 54 
     | 
    
         
            +
                        lib/
         
     | 
| 
      
 55 
     | 
    
         
            +
                      retention-days: 1
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
              specs_install:
         
     | 
| 
      
 58 
     | 
    
         
            +
                timeout-minutes: 30
         
     | 
| 
      
 59 
     | 
    
         
            +
                runs-on: ubuntu-latest
         
     | 
| 
      
 60 
     | 
    
         
            +
                needs: build_install
         
     | 
| 
      
 61 
     | 
    
         
            +
                strategy:
         
     | 
| 
      
 62 
     | 
    
         
            +
                  fail-fast: false
         
     | 
| 
      
 63 
     | 
    
         
            +
                  matrix:
         
     | 
| 
      
 64 
     | 
    
         
            +
                    ruby:
         
     | 
| 
      
 65 
     | 
    
         
            +
                      - '3.4'
         
     | 
| 
      
 66 
     | 
    
         
            +
                      - '3.3'
         
     | 
| 
      
 67 
     | 
    
         
            +
                      - '3.2'
         
     | 
| 
      
 68 
     | 
    
         
            +
                      - '3.1'
         
     | 
| 
      
 69 
     | 
    
         
            +
                    include:
         
     | 
| 
      
 70 
     | 
    
         
            +
                      - ruby: '3.4'
         
     | 
| 
      
 71 
     | 
    
         
            +
                        coverage: 'true'
         
     | 
| 
      
 72 
     | 
    
         
            +
                steps:
         
     | 
| 
      
 73 
     | 
    
         
            +
                  - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
         
     | 
| 
      
 74 
     | 
    
         
            +
                    with:
         
     | 
| 
      
 75 
     | 
    
         
            +
                      fetch-depth: 0
         
     | 
| 
      
 76 
     | 
    
         
            +
                  - name: Download built gem
         
     | 
| 
      
 77 
     | 
    
         
            +
                    uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
         
     | 
| 
      
 78 
     | 
    
         
            +
                    with:
         
     | 
| 
      
 79 
     | 
    
         
            +
                      name: rdkafka-built-gem-musl
         
     | 
| 
      
 80 
     | 
    
         
            +
                      path: ./
         
     | 
| 
      
 81 
     | 
    
         
            +
                  - name: Start Kafka with Docker Compose
         
     | 
| 
      
 82 
     | 
    
         
            +
                    run: |
         
     | 
| 
      
 83 
     | 
    
         
            +
                      docker compose up -d
         
     | 
| 
      
 84 
     | 
    
         
            +
                      echo "Waiting for Kafka to be ready..."
         
     | 
| 
      
 85 
     | 
    
         
            +
                      sleep 10
         
     | 
| 
      
 86 
     | 
    
         
            +
             
     | 
| 
      
 87 
     | 
    
         
            +
                      for i in {1..30}; do
         
     | 
| 
      
 88 
     | 
    
         
            +
                        if docker compose exec -T kafka kafka-topics --bootstrap-server localhost:9092 --list >/dev/null 2>&1; then
         
     | 
| 
      
 89 
     | 
    
         
            +
                          echo "Kafka topics command succeeded!"
         
     | 
| 
      
 90 
     | 
    
         
            +
                          break
         
     | 
| 
      
 91 
     | 
    
         
            +
                        fi
         
     | 
| 
      
 92 
     | 
    
         
            +
                        sleep 2
         
     | 
| 
      
 93 
     | 
    
         
            +
                      done
         
     | 
| 
      
 94 
     | 
    
         
            +
                  - name: Run all specs
         
     | 
| 
      
 95 
     | 
    
         
            +
                    env:
         
     | 
| 
      
 96 
     | 
    
         
            +
                      GITHUB_COVERAGE: ${{ matrix.coverage }}
         
     | 
| 
      
 97 
     | 
    
         
            +
                      RDKAFKA_EXT_PATH: ${{ github.workspace }}/ext
         
     | 
| 
      
 98 
     | 
    
         
            +
                    run: |
         
     | 
| 
      
 99 
     | 
    
         
            +
                      docker run --rm \
         
     | 
| 
      
 100 
     | 
    
         
            +
                        --network host \
         
     | 
| 
      
 101 
     | 
    
         
            +
                        -v "${{ github.workspace }}:/workspace" \
         
     | 
| 
      
 102 
     | 
    
         
            +
                        -w /workspace \
         
     | 
| 
      
 103 
     | 
    
         
            +
                        -e "GITHUB_COVERAGE=${{ matrix.coverage }}" \
         
     | 
| 
      
 104 
     | 
    
         
            +
                        -e "RDKAFKA_EXT_PATH=/workspace/ext" \
         
     | 
| 
      
 105 
     | 
    
         
            +
                        ruby:${{ matrix.ruby }}-alpine \
         
     | 
| 
      
 106 
     | 
    
         
            +
                        sh -c 'apk add --no-cache git build-base linux-headers bash \
         
     | 
| 
      
 107 
     | 
    
         
            +
                          cyrus-sasl \
         
     | 
| 
      
 108 
     | 
    
         
            +
                          cyrus-sasl-login \
         
     | 
| 
      
 109 
     | 
    
         
            +
                          cyrus-sasl-crammd5 \
         
     | 
| 
      
 110 
     | 
    
         
            +
                          cyrus-sasl-digestmd5 \
         
     | 
| 
      
 111 
     | 
    
         
            +
                          cyrus-sasl-gssapiv2 \
         
     | 
| 
      
 112 
     | 
    
         
            +
                          cyrus-sasl-scram \
         
     | 
| 
      
 113 
     | 
    
         
            +
                          krb5-libs \
         
     | 
| 
      
 114 
     | 
    
         
            +
                          openssl \
         
     | 
| 
      
 115 
     | 
    
         
            +
                          zlib \
         
     | 
| 
      
 116 
     | 
    
         
            +
                          zlib-dev \
         
     | 
| 
      
 117 
     | 
    
         
            +
                          zstd-libs && \
         
     | 
| 
      
 118 
     | 
    
         
            +
                          git config --global --add safe.directory /workspace && \
         
     | 
| 
      
 119 
     | 
    
         
            +
                          bundle config set --local path vendor/bundle && \
         
     | 
| 
      
 120 
     | 
    
         
            +
                          bundle install && \
         
     | 
| 
      
 121 
     | 
    
         
            +
                          bundle exec ruby -S rspec'
         
     | 
| 
      
 122 
     | 
    
         
            +
              build_precompiled:
         
     | 
| 
      
 123 
     | 
    
         
            +
                timeout-minutes: 45
         
     | 
| 
      
 124 
     | 
    
         
            +
                runs-on: ubuntu-latest
         
     | 
| 
      
 125 
     | 
    
         
            +
                container:
         
     | 
| 
      
 126 
     | 
    
         
            +
                  image: alpine:3.22@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1
         
     | 
| 
      
 127 
     | 
    
         
            +
                steps:
         
     | 
| 
      
 128 
     | 
    
         
            +
                  - name: Install dependencies
         
     | 
| 
      
 129 
     | 
    
         
            +
                    run: |
         
     | 
| 
      
 130 
     | 
    
         
            +
                      apk add --no-cache git curl ca-certificates build-base linux-headers \
         
     | 
| 
      
 131 
     | 
    
         
            +
                        pkgconf perl autoconf automake libtool bison flex file bash wget zstd-dev \
         
     | 
| 
      
 132 
     | 
    
         
            +
                        openssl-dev cyrus-sasl-dev cyrus-sasl cyrus-sasl-login \
         
     | 
| 
      
 133 
     | 
    
         
            +
                        cyrus-sasl-crammd5 cyrus-sasl-digestmd5 cyrus-sasl-gssapiv2 cyrus-sasl-scram \
         
     | 
| 
      
 134 
     | 
    
         
            +
                        krb5-libs openssl zlib zlib-dev zstd-libs
         
     | 
| 
      
 135 
     | 
    
         
            +
                  - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
         
     | 
| 
      
 136 
     | 
    
         
            +
                    with:
         
     | 
| 
      
 137 
     | 
    
         
            +
                      fetch-depth: 0
         
     | 
| 
      
 138 
     | 
    
         
            +
                  - name: Configure git safe directory
         
     | 
| 
      
 139 
     | 
    
         
            +
                    run: git config --global --add safe.directory /__w/karafka-rdkafka/karafka-rdkafka
         
     | 
| 
      
 140 
     | 
    
         
            +
                  - name: Cache build-tmp directory
         
     | 
| 
      
 141 
     | 
    
         
            +
                    uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
         
     | 
| 
      
 142 
     | 
    
         
            +
                    with:
         
     | 
| 
      
 143 
     | 
    
         
            +
                      path: ext/build-tmp-musl
         
     | 
| 
      
 144 
     | 
    
         
            +
                      key: build-tmp-musl-${{ runner.os }}-${{ hashFiles('ext/*.sh', 'ext/Rakefile') }}-v2
         
     | 
| 
      
 145 
     | 
    
         
            +
                  - name: Build precompiled librdkafka.so
         
     | 
| 
      
 146 
     | 
    
         
            +
                    run: |
         
     | 
| 
      
 147 
     | 
    
         
            +
                      cd ext
         
     | 
| 
      
 148 
     | 
    
         
            +
                      bash ./build_linux_x86_64_musl.sh
         
     | 
| 
      
 149 
     | 
    
         
            +
                  - name: Upload precompiled library
         
     | 
| 
      
 150 
     | 
    
         
            +
                    uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
         
     | 
| 
      
 151 
     | 
    
         
            +
                    with:
         
     | 
| 
      
 152 
     | 
    
         
            +
                      name: librdkafka-precompiled-musl
         
     | 
| 
      
 153 
     | 
    
         
            +
                      path: ext/
         
     | 
| 
      
 154 
     | 
    
         
            +
                      retention-days: 1
         
     | 
| 
      
 155 
     | 
    
         
            +
             
     | 
| 
      
 156 
     | 
    
         
            +
              specs_precompiled:
         
     | 
| 
      
 157 
     | 
    
         
            +
                timeout-minutes: 30
         
     | 
| 
      
 158 
     | 
    
         
            +
                runs-on: ubuntu-latest
         
     | 
| 
      
 159 
     | 
    
         
            +
                needs: build_precompiled
         
     | 
| 
      
 160 
     | 
    
         
            +
                strategy:
         
     | 
| 
      
 161 
     | 
    
         
            +
                  fail-fast: false
         
     | 
| 
      
 162 
     | 
    
         
            +
                  matrix:
         
     | 
| 
      
 163 
     | 
    
         
            +
                    ruby:
         
     | 
| 
      
 164 
     | 
    
         
            +
                      - '3.4'
         
     | 
| 
      
 165 
     | 
    
         
            +
                      - '3.3'
         
     | 
| 
      
 166 
     | 
    
         
            +
                      - '3.2'
         
     | 
| 
      
 167 
     | 
    
         
            +
                      - '3.1'
         
     | 
| 
      
 168 
     | 
    
         
            +
                    include:
         
     | 
| 
      
 169 
     | 
    
         
            +
                      - ruby: '3.4'
         
     | 
| 
      
 170 
     | 
    
         
            +
                        coverage: 'true'
         
     | 
| 
      
 171 
     | 
    
         
            +
                steps:
         
     | 
| 
      
 172 
     | 
    
         
            +
                  - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
         
     | 
| 
      
 173 
     | 
    
         
            +
                    with:
         
     | 
| 
      
 174 
     | 
    
         
            +
                      fetch-depth: 0
         
     | 
| 
      
 175 
     | 
    
         
            +
                  - name: Download precompiled library
         
     | 
| 
      
 176 
     | 
    
         
            +
                    uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
         
     | 
| 
      
 177 
     | 
    
         
            +
                    with:
         
     | 
| 
      
 178 
     | 
    
         
            +
                      name: librdkafka-precompiled-musl
         
     | 
| 
      
 179 
     | 
    
         
            +
                      path: ext/
         
     | 
| 
      
 180 
     | 
    
         
            +
                  - name: Start Kafka with Docker Compose
         
     | 
| 
      
 181 
     | 
    
         
            +
                    run: |
         
     | 
| 
      
 182 
     | 
    
         
            +
                      docker compose up -d
         
     | 
| 
      
 183 
     | 
    
         
            +
                      echo "Waiting for Kafka to be ready..."
         
     | 
| 
      
 184 
     | 
    
         
            +
                      sleep 10
         
     | 
| 
      
 185 
     | 
    
         
            +
             
     | 
| 
      
 186 
     | 
    
         
            +
                      for i in {1..30}; do
         
     | 
| 
      
 187 
     | 
    
         
            +
                        if docker compose exec -T kafka kafka-topics --bootstrap-server localhost:9092 --list >/dev/null 2>&1; then
         
     | 
| 
      
 188 
     | 
    
         
            +
                          echo "Kafka topics command succeeded!"
         
     | 
| 
      
 189 
     | 
    
         
            +
                          break
         
     | 
| 
      
 190 
     | 
    
         
            +
                        fi
         
     | 
| 
      
 191 
     | 
    
         
            +
                        sleep 2
         
     | 
| 
      
 192 
     | 
    
         
            +
                      done
         
     | 
| 
      
 193 
     | 
    
         
            +
                  - name: Run specs with precompiled library
         
     | 
| 
      
 194 
     | 
    
         
            +
                    env:
         
     | 
| 
      
 195 
     | 
    
         
            +
                      GITHUB_COVERAGE: ${{ matrix.coverage }}
         
     | 
| 
      
 196 
     | 
    
         
            +
                      RDKAFKA_EXT_PATH: ${{ github.workspace }}/ext
         
     | 
| 
      
 197 
     | 
    
         
            +
                    run: |
         
     | 
| 
      
 198 
     | 
    
         
            +
                      docker run --rm \
         
     | 
| 
      
 199 
     | 
    
         
            +
                        --network host \
         
     | 
| 
      
 200 
     | 
    
         
            +
                        -v "${{ github.workspace }}:/workspace" \
         
     | 
| 
      
 201 
     | 
    
         
            +
                        -w /workspace \
         
     | 
| 
      
 202 
     | 
    
         
            +
                        -e "GITHUB_COVERAGE=${{ matrix.coverage }}" \
         
     | 
| 
      
 203 
     | 
    
         
            +
                        -e "RDKAFKA_EXT_PATH=/workspace/ext" \
         
     | 
| 
      
 204 
     | 
    
         
            +
                        ruby:${{ matrix.ruby }}-alpine \
         
     | 
| 
      
 205 
     | 
    
         
            +
                        sh -c 'apk add --no-cache git build-base linux-headers bash && git config --global --add safe.directory /workspace && bundle config set --local path vendor/bundle && bundle install && bundle exec ruby -S rspec'
         
     |