Update confluentinc/cp-kafka Docker tag to v7.9.0 #9577
Workflow file for this run
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 | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
on: | |
pull_request: | |
push: | |
schedule: | |
- cron: '0 1 * * *' | |
env: | |
BUNDLE_RETRY: 6 | |
BUNDLE_JOBS: 4 | |
jobs: | |
diffend: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set up Ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: 3.4 | |
bundler-cache: true | |
- name: Install Diffend plugin | |
run: bundle plugin install diffend | |
- name: Bundle Secure | |
run: bundle secure | |
karafka-checksum: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Run Karafka license checksum verification | |
env: | |
KARAFKA_PRO_USERNAME: ${{ secrets.KARAFKA_PRO_USERNAME }} | |
KARAFKA_PRO_PASSWORD: ${{ secrets.KARAFKA_PRO_PASSWORD }} | |
KARAFKA_PRO_VERSION: ${{ secrets.KARAFKA_PRO_VERSION }} | |
KARAFKA_PRO_LICENSE_CHECKSUM: ${{ secrets.KARAFKA_PRO_LICENSE_CHECKSUM }} | |
run: bin/verify_license_integrity | |
coditsu: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Run Coditsu | |
run: \curl -sSL https://api.coditsu.io/run/ci | bash | |
# We do not split RSpec specs to OSS and Pro like integrations because they do not overload | |
# Kafka heavily, compute total coverage for specs and are fast enough | |
specs: | |
timeout-minutes: 10 | |
runs-on: ubuntu-latest | |
needs: diffend | |
strategy: | |
fail-fast: false | |
matrix: | |
ruby: | |
- '3.4' | |
- '3.3' | |
- '3.2' | |
- '3.1' | |
include: | |
- ruby: '3.4' | |
coverage: 'true' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install package dependencies | |
run: "[ -e $APT_DEPS ] || sudo apt-get install -y --no-install-recommends $APT_DEPS" | |
- name: Start Kafka with docker compose | |
run: | | |
docker compose up -d || (sleep 5 && docker compose up -d) | |
# Newer versions of ActiveSupport and Rails do not work with Ruby 3.1 anymore. | |
# While we use newer by default we do want to resolve older and test, thus we remove | |
# Gemfile.lock and let it resolve to the most compatible version possible | |
- name: Remove Gemfile.lock if Ruby 3.1 | |
if: matrix.ruby == '3.1' | |
run: rm -f Gemfile.lock | |
- name: Set up Ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: ${{matrix.ruby}} | |
bundler-cache: true | |
bundler: 'latest' | |
- name: Wait for Kafka | |
run: | | |
bundle exec bin/wait_for_kafka | |
- name: Run all specs | |
env: | |
GITHUB_COVERAGE: ${{matrix.coverage}} | |
run: bin/rspecs | |
- name: Check Kafka logs for unexpected warnings | |
run: bin/verify_kafka_warnings | |
integrations_oss: | |
timeout-minutes: 20 | |
runs-on: ubuntu-latest | |
needs: diffend | |
strategy: | |
fail-fast: false | |
matrix: | |
ruby: | |
- '3.4' | |
- '3.3' | |
- '3.2' | |
- '3.1' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install package dependencies | |
run: "[ -e $APT_DEPS ] || sudo apt-get install -y --no-install-recommends $APT_DEPS" | |
- name: Remove libzstd-dev to check no supported compressions | |
run: sudo apt-get -y remove libzstd-dev | |
- name: Start Kafka with docker compose | |
run: | | |
docker compose up -d || (sleep 5 && docker compose up -d) | |
- name: Set up Ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
# Do not use cache here as we run bundle install also later in some of the integration | |
# tests and we need to be able to run it without cache | |
# | |
# We also want to check that librdkafka is compiling as expected on all versions of Ruby | |
ruby-version: ${{matrix.ruby}} | |
bundler: 'latest' | |
- name: Install latest Bundler | |
run: | | |
gem install bundler --no-document | |
gem update --system --no-document | |
bundle config set without 'tools benchmarks docs' | |
- name: Fix directory permissions for Bundler | |
run: | | |
chmod -R o-w /opt/hostedtoolcache/Ruby/3*/x64/lib/ruby/gems/3*/gems | |
chmod +t /opt/hostedtoolcache/Ruby/3*/x64/lib/ruby/gems/3*/gems | |
- name: Bundle install | |
run: | | |
bundle config set without development | |
bundle install --jobs 4 --retry 3 | |
- name: Wait for Kafka | |
run: | | |
bundle exec bin/wait_for_kafka | |
- name: Run OSS integration tests | |
run: bin/integrations --exclude '/pro' | |
- name: Check Kafka logs for unexpected warnings | |
run: bin/verify_kafka_warnings | |
integrations_pro: | |
timeout-minutes: 45 | |
runs-on: ubuntu-latest | |
needs: diffend | |
strategy: | |
fail-fast: false | |
matrix: | |
ruby: | |
- '3.4' | |
- '3.3' | |
- '3.2' | |
- '3.1' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install package dependencies | |
run: "[ -e $APT_DEPS ] || sudo apt-get install -y --no-install-recommends $APT_DEPS" | |
- name: Start Kafka with docker compose | |
run: | | |
docker compose up -d || (sleep 5 && docker compose up -d) | |
- name: Set up Ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: ${{matrix.ruby}} | |
bundler: 'latest' | |
- name: Install latest Bundler | |
run: | | |
gem install bundler --no-document | |
gem update --system --no-document | |
bundle config set without 'tools benchmarks docs' | |
- name: Bundle install | |
run: | | |
bundle config set without development | |
bundle install --jobs 4 --retry 3 | |
- name: Wait for Kafka | |
run: | | |
bundle exec bin/wait_for_kafka | |
- name: Run Pro integration tests | |
env: | |
KARAFKA_PRO_LICENSE_TOKEN: ${{ secrets.KARAFKA_PRO_LICENSE_TOKEN }} | |
KARAFKA_PRO_USERNAME: ${{ secrets.KARAFKA_PRO_USERNAME }} | |
KARAFKA_PRO_PASSWORD: ${{ secrets.KARAFKA_PRO_PASSWORD }} | |
KARAFKA_PRO_VERSION: ${{ secrets.KARAFKA_PRO_VERSION }} | |
KARAFKA_PRO_LICENSE_CHECKSUM: ${{ secrets.KARAFKA_PRO_LICENSE_CHECKSUM }} | |
run: bin/integrations '/pro' | |
- name: Check Kafka logs for unexpected warnings | |
run: bin/verify_kafka_warnings |