Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions .github/workflows/ci_linux_alpine_aarch64_musl.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ env:
BUNDLE_JOBS: 4

jobs:
specs_install:
tests_install:
timeout-minutes: 60
runs-on: ubuntu-24.04-arm
strategy:
Expand Down Expand Up @@ -80,7 +80,7 @@ jobs:
sleep 2
done

- name: Run all specs in PLAINTEXT
- name: Run all tests in PLAINTEXT
env:
GITHUB_COVERAGE: ${{ matrix.coverage }}
run: |
Expand All @@ -101,7 +101,7 @@ jobs:
bundle install && \
cd ext && bundle exec rake && \
cd .. && \
bundle exec ruby -S rspec'
bundle exec rake test'

- name: Verify Kafka warnings
run: bin/verify_kafka_warnings
Expand Down Expand Up @@ -139,7 +139,7 @@ jobs:
path: ext/
retention-days: 1

specs_precompiled:
tests_precompiled:
timeout-minutes: 45
runs-on: ubuntu-24.04-arm
needs: build_precompiled
Expand Down Expand Up @@ -178,7 +178,7 @@ jobs:
sleep 2
done

- name: Run specs with precompiled library and PLAINTEXT
- name: Run tests with precompiled library and PLAINTEXT
env:
GITHUB_COVERAGE: ${{ matrix.coverage }}
RDKAFKA_EXT_PATH: ${{ github.workspace }}/ext
Expand All @@ -195,7 +195,7 @@ jobs:
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'
bundle install && bundle exec rake test'

- name: Verify Kafka warnings
run: bin/verify_kafka_warnings
Expand All @@ -205,9 +205,9 @@ jobs:
runs-on: ubuntu-24.04-arm
if: always()
needs:
- specs_install
- tests_install
- build_precompiled
- specs_precompiled
- tests_precompiled
steps:
- name: Check all jobs passed
if: |
Expand Down
40 changes: 20 additions & 20 deletions .github/workflows/ci_linux_alpine_aarch64_musl_complementary.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,20 @@
# on ARM64 architecture.
#
# WHY COMPLEMENTARY TESTING FOR ALPINE/MUSL ARM64:
# - SSL specs have been stable for 3+ years and rarely break due to code changes
# - Integration specs test musl libc and Alpine package compatibility on ARM64
# - SSL tests have been stable for 3+ years and rarely break due to code changes
# - Integration tests test musl libc and Alpine package compatibility on ARM64
# - These tests catch regressions from external changes (OpenSSL updates, Alpine package updates)
# - Running every 3 days to prevent these slower tests from blocking PR velocity
# - Manual triggering allows testing workflow changes before they go into schedule
#
# SSL TESTING (specs_install + specs_precompiled):
# SSL TESTING (tests_install + tests_precompiled):
# - Tests SSL/TLS connectivity with Kafka using docker-compose-ssl.yml on Alpine ARM64
# - Validates certificate handling and SSL handshakes across Ruby versions on musl ARM64
# - Ensures SSL works with both compiled-from-source and precompiled flows on Alpine ARM64
# - Catches OpenSSL version compatibility issues and SSL library regressions on musl ARM64
# - Tests real SSL scenarios that mirror Alpine ARM64-based production deployments
#
# INTEGRATION TESTING (integration specs in both jobs):
# INTEGRATION TESTING (integration tests in both jobs):
# - Tests musl libc and Alpine system library compatibility on ARM64 without requiring Kafka infrastructure
# - Validates libssl, libsasl2, libzstd, zlib integration across Alpine versions on ARM64
# - Ensures native extensions work with different Alpine package versions on ARM64
Expand Down Expand Up @@ -47,7 +47,7 @@ on:
pull_request:
paths:
- '.github/workflows/ci_linux_alpine_aarch64_musl_complementary.yml'
- 'spec/integrations/**'
- 'test/integrations/**'
branches: [ master ]
push:
branches:
Expand Down Expand Up @@ -96,7 +96,7 @@ jobs:
path: ext/
retention-days: 1

specs_install:
tests_install:
timeout-minutes: 60
runs-on: ubuntu-24.04-arm
strategy:
Expand Down Expand Up @@ -128,7 +128,7 @@ jobs:
sleep 2
done

- name: Run all specs in SSL (compiled flow)
- name: Run all tests in SSL (compiled flow)
env:
KAFKA_SSL_ENABLED: "true"
run: |
Expand All @@ -152,13 +152,13 @@ jobs:
echo "=== SSL Library Versions ===" && \
openssl version && \
apk list --installed | grep -E "(openssl|cyrus-sasl)" && \
echo "=== Running SSL Specs (Compiled) ===" && \
bundle exec ruby -S rspec'
echo "=== Running SSL Tests (Compiled) ===" && \
bundle exec rake test'

- name: Verify Kafka warnings
run: bin/verify_kafka_warnings

- name: Run integration specs (compiled flow)
- name: Run integration tests (compiled flow)
run: |
docker run --rm --platform linux/arm64 \
-v "${{ github.workspace }}:/workspace" \
Expand All @@ -178,13 +178,13 @@ jobs:
echo "=== Alpine/musl Library Versions ===" && \
openssl version && \
apk list --installed | grep -E "(openssl|cyrus-sasl|zstd|zlib)" && \
echo "=== Running Integration Specs (Compiled) ===" && \
for file in $(ls spec/integrations/*_spec.rb); do \
echo "=== Running Integration Tests (Compiled) ===" && \
for file in $(ls test/integrations/*_test.rb); do \
echo "Running $file with Ruby ${{ matrix.ruby }} on Alpine ${{ matrix.alpine_version }} ARM64"; \
bundle exec ruby "$file" || exit 1; \
done'

specs_precompiled:
tests_precompiled:
timeout-minutes: 45
needs: build_precompiled
strategy:
Expand Down Expand Up @@ -221,7 +221,7 @@ jobs:
sleep 2
done

- name: Run specs with precompiled library and SSL
- name: Run tests with precompiled library and SSL
env:
RDKAFKA_EXT_PATH: ${{ github.workspace }}/ext
KAFKA_SSL_ENABLED: "true"
Expand All @@ -239,12 +239,12 @@ jobs:
git config --global --add safe.directory /workspace && \
bundle config set --local path vendor/bundle && bundle install && \
apk list --installed | grep -E "(openssl|cyrus-sasl)" && \
bundle exec ruby -S rspec'
bundle exec rake test'

- name: Verify Kafka warnings
run: bin/verify_kafka_warnings

- name: Run integration specs (precompiled flow)
- name: Run integration tests (precompiled flow)
env:
RDKAFKA_EXT_PATH: ${{ github.workspace }}/ext
RDKAFKA_PRECOMPILED: "true"
Expand All @@ -265,8 +265,8 @@ jobs:
bundle config set --local path vendor/bundle && \
bundle install && \
apk list --installed | grep -E "(openssl|cyrus-sasl|zstd|zlib)" && \
echo "=== Running Integration Specs (Precompiled) ===" && \
for file in $(ls spec/integrations/*_spec.rb); do \
echo "=== Running Integration Tests (Precompiled) ===" && \
for file in $(ls test/integrations/*_test.rb); do \
echo "Running $file with Ruby ${{ matrix.ruby }} (precompiled ARM64)"; \
bundle exec ruby "$file" || exit 1; \
done'
Expand All @@ -276,9 +276,9 @@ jobs:
runs-on: ubuntu-24.04-arm
if: always()
needs:
- specs_install
- tests_install
- build_precompiled
- specs_precompiled
- tests_precompiled
steps:
- name: Check all jobs passed
if: |
Expand Down
16 changes: 8 additions & 8 deletions .github/workflows/ci_linux_alpine_x86_64_musl.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ env:
BUNDLE_JOBS: 4

jobs:
specs_install:
tests_install:
timeout-minutes: 45
runs-on: ubuntu-latest
strategy:
Expand Down Expand Up @@ -80,7 +80,7 @@ jobs:
sleep 2
done

- name: Run all specs in PLAINTEXT
- name: Run all tests in PLAINTEXT
env:
GITHUB_COVERAGE: ${{ matrix.coverage }}
run: |
Expand All @@ -101,7 +101,7 @@ jobs:
bundle install && \
cd ext && bundle exec rake && \
cd .. && \
bundle exec ruby -S rspec'
bundle exec rake test'

- name: Verify Kafka warnings
run: bin/verify_kafka_warnings
Expand Down Expand Up @@ -141,7 +141,7 @@ jobs:
path: ext/
retention-days: 1

specs_precompiled:
tests_precompiled:
timeout-minutes: 30
runs-on: ubuntu-latest
needs: build_precompiled
Expand Down Expand Up @@ -177,7 +177,7 @@ jobs:
fi
sleep 2
done
- name: Run specs with precompiled library and PLAINTEXT
- name: Run tests with precompiled library and PLAINTEXT
env:
GITHUB_COVERAGE: ${{ matrix.coverage }}
RDKAFKA_EXT_PATH: ${{ github.workspace }}/ext
Expand All @@ -194,7 +194,7 @@ jobs:
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'
bundle install && bundle exec rake test'

- name: Verify Kafka warnings
run: bin/verify_kafka_warnings
Expand All @@ -204,9 +204,9 @@ jobs:
runs-on: ubuntu-latest
if: always()
needs:
- specs_install
- tests_install
- build_precompiled
- specs_precompiled
- tests_precompiled
steps:
- name: Check all jobs passed
if: |
Expand Down
40 changes: 20 additions & 20 deletions .github/workflows/ci_linux_alpine_x86_64_musl_complementary.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,20 @@
# schedule and when workflow changes are made.
#
# WHY COMPLEMENTARY TESTING FOR ALPINE/MUSL:
# - SSL specs have been stable for 3+ years and rarely break due to code changes
# - Integration specs test musl libc and Alpine package compatibility
# - SSL tests have been stable for 3+ years and rarely break due to code changes
# - Integration tests test musl libc and Alpine package compatibility
# - These tests catch regressions from external changes (OpenSSL updates, Alpine package updates)
# - Running every 3 days to prevent these slower tests from blocking PR velocity
# - Manual triggering allows testing workflow changes before they go into schedule
#
# SSL TESTING (specs_install + specs_precompiled):
# SSL TESTING (tests_install + tests_precompiled):
# - Tests SSL/TLS connectivity with Kafka using docker-compose-ssl.yml on Alpine
# - Validates certificate handling and SSL handshakes across Ruby versions on musl
# - Ensures SSL works with both compiled-from-source and precompiled flows on Alpine
# - Catches OpenSSL version compatibility issues and SSL library regressions on musl
# - Tests real SSL scenarios that mirror Alpine-based production deployments
#
# INTEGRATION TESTING (integration specs in both jobs):
# INTEGRATION TESTING (integration tests in both jobs):
# - Tests musl libc and Alpine system library compatibility without requiring Kafka infrastructure
# - Validates libssl, libsasl2, libzstd, zlib integration across Alpine versions
# - Ensures native extensions work with different Alpine package versions
Expand Down Expand Up @@ -48,7 +48,7 @@ on:
pull_request:
paths:
- '.github/workflows/ci_linux_alpine_x86_64_musl_complementary.yml'
- 'spec/integrations/**'
- 'test/integrations/**'
branches: [ master ]
push:
branches:
Expand Down Expand Up @@ -99,7 +99,7 @@ jobs:
path: ext/
retention-days: 1

specs_install:
tests_install:
timeout-minutes: 45
runs-on: ubuntu-latest
strategy:
Expand Down Expand Up @@ -131,7 +131,7 @@ jobs:
sleep 2
done

- name: Run all specs in SSL (compiled flow)
- name: Run all tests in SSL (compiled flow)
env:
KAFKA_SSL_ENABLED: "true"
run: |
Expand All @@ -155,13 +155,13 @@ jobs:
echo "=== SSL Library Versions ===" && \
openssl version && \
apk list --installed | grep -E "(openssl|cyrus-sasl)" && \
echo "=== Running SSL Specs (Compiled) ===" && \
bundle exec ruby -S rspec'
echo "=== Running SSL Tests (Compiled) ===" && \
bundle exec rake test'

- name: Verify Kafka warnings
run: bin/verify_kafka_warnings

- name: Run integration specs (compiled flow)
- name: Run integration tests (compiled flow)
run: |
docker run --rm \
-v "${{ github.workspace }}:/workspace" \
Expand All @@ -181,13 +181,13 @@ jobs:
echo "=== Alpine/musl Library Versions ===" && \
openssl version && \
apk list --installed | grep -E "(openssl|cyrus-sasl|zstd|zlib)" && \
echo "=== Running Integration Specs (Compiled) ===" && \
for file in $(ls spec/integrations/*_spec.rb); do \
echo "=== Running Integration Tests (Compiled) ===" && \
for file in $(ls test/integrations/*_test.rb); do \
echo "Running $file with Ruby ${{ matrix.ruby }} on Alpine ${{ matrix.alpine_version }}"; \
bundle exec ruby "$file" || exit 1; \
done'

specs_precompiled:
tests_precompiled:
timeout-minutes: 30
needs: build_precompiled
strategy:
Expand Down Expand Up @@ -222,7 +222,7 @@ jobs:
sleep 2
done

- name: Run specs with precompiled library and SSL
- name: Run tests with precompiled library and SSL
env:
RDKAFKA_EXT_PATH: ${{ github.workspace }}/ext
KAFKA_SSL_ENABLED: "true"
Expand All @@ -240,12 +240,12 @@ jobs:
git config --global --add safe.directory /workspace && \
bundle config set --local path vendor/bundle && bundle install && \
apk list --installed | grep -E "(openssl|cyrus-sasl)" && \
bundle exec ruby -S rspec'
bundle exec rake test'

- name: Verify Kafka warnings
run: bin/verify_kafka_warnings

- name: Run integration specs (precompiled flow)
- name: Run integration tests (precompiled flow)
env:
RDKAFKA_EXT_PATH: ${{ github.workspace }}/ext
RDKAFKA_PRECOMPILED: "true"
Expand All @@ -266,8 +266,8 @@ jobs:
bundle config set --local path vendor/bundle && \
bundle install && \
apk list --installed | grep -E "(openssl|cyrus-sasl|zstd|zlib)" && \
echo "=== Running Integration Specs (Precompiled) ===" && \
for file in $(ls spec/integrations/*_spec.rb); do \
echo "=== Running Integration Tests (Precompiled) ===" && \
for file in $(ls test/integrations/*_test.rb); do \
echo "Running $file with Ruby ${{ matrix.ruby }} (precompiled)"; \
bundle exec ruby "$file" || exit 1; \
done'
Expand All @@ -277,9 +277,9 @@ jobs:
runs-on: ubuntu-latest
if: always()
needs:
- specs_install
- tests_install
- build_precompiled
- specs_precompiled
- tests_precompiled
steps:
- name: Check all jobs passed
if: |
Expand Down
Loading
Loading