Skip to content

Commit

Permalink
test in mysql8
Browse files Browse the repository at this point in the history
  • Loading branch information
seuros committed Feb 11, 2024
1 parent 2f0f948 commit a763b4c
Show file tree
Hide file tree
Showing 5 changed files with 76 additions and 3 deletions.
Original file line number Diff line number Diff line change
@@ -1,15 +1,19 @@
name: CI Mysql
name: CI Mysql 5.7
on:
pull_request:
branches:
- master
concurrency:
group: ci-mysql5-${{ github.head_ref }}
cancel-in-progress: true

jobs:
minitest:
runs-on: ubuntu-latest
name: Ruby ${{ matrix.ruby }} / Rails ${{ matrix.rails }}
services:
mysql:
image: mysql/mysql-server:5.7
image: mysql:5.7
ports:
- "3306:3306"
env:
Expand Down
58 changes: 58 additions & 0 deletions .github/workflows/ci-mysql8.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: CI Mysql 8.0
on:
pull_request:
branches:
- master

concurrency:
group: ci-mysql8-${{ github.head_ref }}
cancel-in-progress: true

jobs:
minitest:
runs-on: ubuntu-latest
name: Ruby ${{ matrix.ruby }} / Rails ${{ matrix.rails }}
services:
mysql:
image: mysql:latest
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=5 -e MYSQL_ROOT_HOST='%' -e MYSQL_USER=with_advisory -e MYSQL_PASSWORD=with_advisory_pass -e MYSQL_DATABASE=with_advisory_lock_test --entrypoint="mysqld --default-authentication-plugin=mysql_native_password"
ports:
- "3306:3306"
strategy:
fail-fast: false
matrix:
ruby:
- '3.2'
- '3.1'
- '3.0'
- '2.7'
- '3.3'
- 'truffleruby'
rails:
- 7.1
- "7.0"
- 6.1
adapter:
- mysql2://with_advisory:with_advisory_pass@0/with_advisory_lock_test
- trilogy://with_advisory:with_advisory_pass@0/with_advisory_lock_test
include:
- ruby: jruby
rails: 6.1
adapter: jdbcmysql://with_advisory:with_advisory_pass@0/with_advisory_lock_test
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
rubygems: latest
env:
BUNDLE_GEMFILE: gemfiles/activerecord_${{ matrix.rails }}.gemfile
- name: Test
env:
BUNDLE_GEMFILE: gemfiles/activerecord_${{ matrix.rails }}.gemfile
DATABASE_URL: ${{ matrix.adapter }}
WITH_ADVISORY_LOCK_PREFIX: ${{ github.run_id }}
run: bundle exec rake
4 changes: 4 additions & 0 deletions .github/workflows/ci-postgresql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@ on:
pull_request:
branches:
- master
concurrency:
group: ci-postgresql-${{ github.head_ref }}
cancel-in-progress: true

jobs:
minitest:
runs-on: ubuntu-latest
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
---
name: CI
name: CI Sqlite3

on:
pull_request:
branches:
- master

concurrency:
group: ci-sqlite3-${{ github.head_ref }}
cancel-in-progress: true

jobs:
minitest:
runs-on: ubuntu-latest
Expand Down
3 changes: 3 additions & 0 deletions lib/with_advisory_lock/mysql.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

module WithAdvisoryLock
class MySQL < Base
# Caches nested lock support by MySQL reported version
@@mysql_nl_cache = {}
@@mysql_nl_cache_mutex = Mutex.new
# See https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_get-lock
def try_lock
raise ArgumentError, 'shared locks are not supported on MySQL' if shared
Expand Down

0 comments on commit a763b4c

Please sign in to comment.