Skip to content

Handle new execute_intent non-raising behaviour #2481

Handle new execute_intent non-raising behaviour

Handle new execute_intent non-raising behaviour #2481

Workflow file for this run

---
name: Test
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_call:
concurrency:
group: ${{ github.ref }}-test
cancel-in-progress: true
jobs:
semian:
name: Ruby ${{ matrix.ruby }} / semian / Rails ${{ matrix.rails_version }}
runs-on: ubuntu-latest
container:
image: ruby:${{ matrix.ruby }}
ports:
- 31150:31050
- 31050:31050
# NOTE: Container required be accessed by hostname http-server,
# because upstream to toxiproxy should have access
# to the same container
options: --hostname http-server
env:
CI: "1"
BUNDLE_GEMFILE: ${{ matrix.gemfile }}
strategy:
fail-fast: false
matrix:
ruby:
- "3.4"
- "3.3"
gemfile:
- Gemfile
- gemfiles/rails_edge.gemfile
include:
- gemfile: Gemfile
rails_version: released
- gemfile: gemfiles/rails_edge.gemfile
rails_version: edge
services:
mysql:
image: mysql:9.3
env:
MYSQL_ROOT_PASSWORD: root
options: >-
--health-cmd="mysqladmin ping"
--health-interval=10s
--health-timeout=5s
--health-retries=5
postgres:
image: postgres:15
env:
POSTGRES_PASSWORD: root
options: >-
--health-cmd="pg_isready"
--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.12.0
steps:
-
name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
-
name: Cache
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: vendor/bundle
# yamllint disable-line rule:line-length
key: ${{ runner.os }}-ruby-${{ matrix.ruby }}-semian-${{ matrix.rails_version }}-gems-${{ hashFiles(env.BUNDLE_GEMFILE, format('{0}.lock', env.BUNDLE_GEMFILE)) }}
restore-keys: |
${{ runner.os }}-ruby-${{ matrix.ruby }}-semian-${{ matrix.rails_version }}-gems-
-
name: Bundle
run: |
bundle config path vendor/bundle
bundle install
-
name: Build C extension
run: bundle exec rake build
-
name: Tests
timeout-minutes: 5
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 http-server,
# because upstream to toxiproxy should have access
# to the same container
options: --hostname http-server
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.4"
- "3.3"
gemfile:
- grpc
- mysql2
- net_http
- rails_mysql2
- rails_mysql2_edge
- rails_trilogy
- rails_trilogy_edge
- redis_4
- redis_5
- redis_client
- activerecord_trilogy_adapter
- activerecord_trilogy_adapter_edge
- activerecord_postgresql_adapter
- activerecord_postgresql_adapter_edge
include:
- gemfile: grpc
adapter: grpc
- gemfile: mysql2
adapter: mysql2
- gemfile: net_http
adapter: net_http
- gemfile: rails_mysql2
adapter: rails_mysql2
- gemfile: rails_mysql2_edge
adapter: rails_mysql2
- gemfile: rails_trilogy
adapter: rails_trilogy
- gemfile: rails_trilogy_edge
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
- gemfile: activerecord_trilogy_adapter_edge
adapter: activerecord_trilogy_adapter
- gemfile: activerecord_postgresql_adapter
adapter: activerecord_postgresql_adapter
- gemfile: activerecord_postgresql_adapter_edge
adapter: activerecord_postgresql_adapter
services:
mysql:
image: mysql:9.3
env:
MYSQL_ROOT_PASSWORD: root
options: >-
--health-cmd="mysqladmin ping"
--health-interval=10s
--health-timeout=5s
--health-retries=5
postgres:
image: postgres:15
env:
POSTGRES_PASSWORD: root
options: >-
--health-cmd="pg_isready"
--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.12.0
steps:
-
name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
-
name: Cache
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: vendor/bundle
# yamllint disable-line rule:line-length
key: ${{ runner.os }}-ruby-${{ matrix.ruby }}-adapter-${{ matrix.gemfile }}-gems-${{ hashFiles(env.BUNDLE_GEMFILE, 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
timeout-minutes: 5
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)