Skip to content

redis dynamic name support, allowing for different semians on same redis host #1048

redis dynamic name support, allowing for different semians on same redis host

redis dynamic name support, allowing for different semians on same redis host #1048

Workflow file for this run

---
name: Test
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
concurrency:
group: ${{ github.ref }}-test
cancel-in-progress: true
jobs:
semian:
name: Ruby ${{ matrix.ruby }} / semian
runs-on: ubuntu-latest
container:
image: ruby:${{ matrix.ruby }}
ports:
- 31150:31050
- 31050:31050
# NOTE: Container required be accessed by hostname semian,
# because upstream to toxiproxy should have access
# to the same container
options: --hostname semian
env:
CI: "1"
BUNDLE_GEMFILE: Gemfile
strategy:
fail-fast: true
matrix:
ruby:
- "3.2"
- "3.1"
- "3.0"
- "2.7"
services:
mysql:
image: mysql:5.7
env:
MYSQL_ALLOW_EMPTY_PASSWORD: "true"
options: >-
--health-cmd="mysqladmin ping"
--health-interval=10s
--health-timeout=5s
--health-retries=5
redis:
image: redis
options: >-
--health-cmd="redis-cli ping"
--health-interval=10s
--health-timeout=5s
--health-retries=5
toxiproxy:
image: ghcr.io/shopify/toxiproxy:2.5.0
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Cache
uses: actions/cache@v4
with:
path: vendor/bundle
key: ${{ runner.os }}-ruby-${{ matrix.ruby }}-gems-${{ hashFiles( format('{0}.lock', env.BUNDLE_GEMFILE) ) }}
restore-keys: |
${{ runner.os }}-ruby-${{ matrix.ruby }}-gems-
-
name: Bundle
run: |
bundle config path vendor/bundle
bundle install
-
name: Build C extension
run: bundle exec rake build
-
name: Tests
run: |
bundle exec rake test:semian ||
(echo "===== Retry Attempt: 2 ====" && bundle exec rake test:semian) || \
(echo "===== Retry Attempt: 3 ====" && bundle exec rake test:semian)
-
name: Examples
env:
MYSQL_HOST: mysql
run: |
bundle exec rake examples
adapters:
name: Ruby ${{ matrix.ruby }} / ${{ matrix.gemfile }}
runs-on: ubuntu-latest
container:
image: ruby:${{ matrix.ruby }}
ports:
- 31150:31050
- 31050:31050
# NOTE: Container required be accessed by hostname semian,
# because upstream to toxiproxy should have access
# to the same container
options: --hostname semian
env:
CI: "1"
SEED: 58485
BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}.gemfile
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstrategy
strategy:
fail-fast: false
matrix:
ruby:
- "3.2"
- "3.1"
- "3.0"
- "2.7"
gemfile:
- grpc
- mysql2
- net_http
- rails_mysql2
- rails_trilogy
- redis_4
- redis_5
- redis_client
- activerecord_trilogy_adapter
include:
- gemfile: grpc
adapter: grpc
- gemfile: mysql2
adapter: mysql2
- gemfile: net_http
adapter: net_http
- gemfile: rails_mysql2
adapter: rails_mysql2
- gemfile: rails_trilogy
adapter: rails_trilogy
- gemfile: redis_4
adapter: redis
- gemfile: redis_5
adapter: redis
- gemfile: redis_client
adapter: redis_client
- gemfile: activerecord_trilogy_adapter
adapter: activerecord_trilogy_adapter
services:
mysql:
image: mysql:5.7
env:
MYSQL_ALLOW_EMPTY_PASSWORD: "true"
options: >-
--health-cmd="mysqladmin ping"
--health-interval=10s
--health-timeout=5s
--health-retries=5
redis:
image: redis
options: >-
--health-cmd="redis-cli ping"
--health-interval=10s
--health-timeout=5s
--health-retries=5
toxiproxy:
image: ghcr.io/shopify/toxiproxy:2.5.0
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Cache
uses: actions/cache@v4
with:
path: vendor/bundle
key: ${{ runner.os }}-ruby-${{ matrix.ruby }}-adapter-${{ matrix.gemfile }}-gems-${{ hashFiles( format('{0}.lock', env.BUNDLE_GEMFILE) ) }}
restore-keys: |
${{ runner.os }}-ruby-${{ matrix.ruby }}-adapter-${{ matrix.gemfile }}-gems-
-
name: Bundle
run: |
bundle config path vendor/bundle
bundle install
-
name: Build C extension
run: |
bundle config path vendor/bundle
bundle exec rake build
-
name: Tests
env:
TEST: test/adapters/${{ matrix.adapter }}_test.rb
run: |
bundle exec rake test || \
(echo "===== Retry Attempt: 2 ====" && bundle exec rake test) || \
(echo "===== Retry Attempt: 3 ====" && bundle exec rake test)