diff --git a/.github/workflows/aggregate_root_coverage.yml b/.github/workflows/aggregate_root_coverage.yml index b0589da16f..6faafe8eda 100644 --- a/.github/workflows/aggregate_root_coverage.yml +++ b/.github/workflows/aggregate_root_coverage.yml @@ -35,7 +35,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/aggregate_root_mutate.yml b/.github/workflows/aggregate_root_mutate.yml index 74e4adc161..66961abf45 100644 --- a/.github/workflows/aggregate_root_mutate.yml +++ b/.github/workflows/aggregate_root_mutate.yml @@ -43,7 +43,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/aggregate_root_test.yml b/.github/workflows/aggregate_root_test.yml index cc1a017d14..e1479d2da4 100644 --- a/.github/workflows/aggregate_root_test.yml +++ b/.github/workflows/aggregate_root_test.yml @@ -43,6 +43,8 @@ jobs: fail-fast: false matrix: include: + - ruby_version: ruby-3.3 + bundle_gemfile: Gemfile - ruby_version: ruby-3.2 bundle_gemfile: Gemfile - ruby_version: ruby-3.1 diff --git a/.github/workflows/dres_client_test.yml b/.github/workflows/dres_client_test.yml index 5ea11c547a..67c60304ac 100644 --- a/.github/workflows/dres_client_test.yml +++ b/.github/workflows/dres_client_test.yml @@ -35,6 +35,8 @@ jobs: fail-fast: false matrix: include: + - ruby_version: ruby-3.3 + bundle_gemfile: Gemfile - ruby_version: ruby-3.2 bundle_gemfile: Gemfile - ruby_version: ruby-3.1 diff --git a/.github/workflows/dres_rails_test.yml b/.github/workflows/dres_rails_test.yml index 7b554e0e0c..278dba8dad 100644 --- a/.github/workflows/dres_rails_test.yml +++ b/.github/workflows/dres_rails_test.yml @@ -54,6 +54,10 @@ jobs: fail-fast: false matrix: include: + - ruby_version: ruby-3.3 + bundle_gemfile: Gemfile + database_url: postgres://postgres:secret@localhost:10015/rails_event_store?pool=5 + data_type: binary - ruby_version: ruby-3.2 bundle_gemfile: Gemfile database_url: postgres://postgres:secret@localhost:10015/rails_event_store?pool=5 @@ -66,15 +70,15 @@ jobs: bundle_gemfile: Gemfile database_url: postgres://postgres:secret@localhost:10015/rails_event_store?pool=5 data_type: binary - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile database_url: postgres://postgres:secret@localhost:10011/rails_event_store?pool=5 data_type: binary - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile database_url: postgres://postgres:secret@localhost:10015/rails_event_store?pool=5 data_type: json - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile database_url: postgres://postgres:secret@localhost:10015/rails_event_store?pool=5 data_type: jsonb diff --git a/.github/workflows/minitest-ruby_event_store_coverage.yml b/.github/workflows/minitest-ruby_event_store_coverage.yml index 97fc4490be..4e04efac82 100644 --- a/.github/workflows/minitest-ruby_event_store_coverage.yml +++ b/.github/workflows/minitest-ruby_event_store_coverage.yml @@ -35,7 +35,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/minitest-ruby_event_store_mutate.yml b/.github/workflows/minitest-ruby_event_store_mutate.yml index 991ca16484..9161e15f6e 100644 --- a/.github/workflows/minitest-ruby_event_store_mutate.yml +++ b/.github/workflows/minitest-ruby_event_store_mutate.yml @@ -33,7 +33,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/minitest-ruby_event_store_test.yml b/.github/workflows/minitest-ruby_event_store_test.yml index 920719cc15..e87400ae80 100644 --- a/.github/workflows/minitest-ruby_event_store_test.yml +++ b/.github/workflows/minitest-ruby_event_store_test.yml @@ -33,6 +33,8 @@ jobs: fail-fast: false matrix: include: + - ruby_version: ruby-3.3 + bundle_gemfile: Gemfile - ruby_version: ruby-3.2 bundle_gemfile: Gemfile - ruby_version: ruby-3.1 diff --git a/.github/workflows/rails_event_store_coverage.yml b/.github/workflows/rails_event_store_coverage.yml index d3e0a58129..23fe8190ce 100644 --- a/.github/workflows/rails_event_store_coverage.yml +++ b/.github/workflows/rails_event_store_coverage.yml @@ -35,7 +35,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/rails_event_store_mutate.yml b/.github/workflows/rails_event_store_mutate.yml index 76feb3f34b..80b4a35140 100644 --- a/.github/workflows/rails_event_store_mutate.yml +++ b/.github/workflows/rails_event_store_mutate.yml @@ -43,7 +43,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/rails_event_store_test.yml b/.github/workflows/rails_event_store_test.yml index ef7d57cc8a..20e4ca2721 100644 --- a/.github/workflows/rails_event_store_test.yml +++ b/.github/workflows/rails_event_store_test.yml @@ -43,6 +43,8 @@ jobs: fail-fast: false matrix: include: + - ruby_version: ruby-3.3 + bundle_gemfile: Gemfile - ruby_version: ruby-3.2 bundle_gemfile: Gemfile - ruby_version: ruby-3.1 @@ -51,9 +53,9 @@ jobs: bundle_gemfile: Gemfile - ruby_version: truffleruby bundle_gemfile: Gemfile - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile.rails_6_1 - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile.rails_6_0 steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ruby_event_store-active_record_coverage.yml b/.github/workflows/ruby_event_store-active_record_coverage.yml index 1b6acf3f81..c5878f2ecc 100644 --- a/.github/workflows/ruby_event_store-active_record_coverage.yml +++ b/.github/workflows/ruby_event_store-active_record_coverage.yml @@ -35,7 +35,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ruby_event_store-active_record_mutate.yml b/.github/workflows/ruby_event_store-active_record_mutate.yml index d90eb758dd..722e03e536 100644 --- a/.github/workflows/ruby_event_store-active_record_mutate.yml +++ b/.github/workflows/ruby_event_store-active_record_mutate.yml @@ -43,7 +43,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ruby_event_store-active_record_test.yml b/.github/workflows/ruby_event_store-active_record_test.yml index b0e8d84f68..0e792eec20 100644 --- a/.github/workflows/ruby_event_store-active_record_test.yml +++ b/.github/workflows/ruby_event_store-active_record_test.yml @@ -78,6 +78,10 @@ jobs: fail-fast: false matrix: include: + - ruby_version: ruby-3.3 + bundle_gemfile: Gemfile + database_url: sqlite3:db.sqlite3 + data_type: binary - ruby_version: ruby-3.2 bundle_gemfile: Gemfile database_url: sqlite3:db.sqlite3 @@ -94,31 +98,31 @@ jobs: bundle_gemfile: Gemfile database_url: sqlite3:db.sqlite3 data_type: binary - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile database_url: postgres://postgres:secret@localhost:10015/rails_event_store?pool=5 data_type: binary - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile database_url: postgres://postgres:secret@localhost:10011/rails_event_store?pool=5 data_type: binary - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile database_url: postgres://postgres:secret@localhost:10015/rails_event_store?pool=5 data_type: json - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile database_url: postgres://postgres:secret@localhost:10015/rails_event_store?pool=5 data_type: jsonb - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile database_url: mysql2://root:secret@127.0.0.1:10008/rails_event_store?pool=5 data_type: binary - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile database_url: mysql2://root:secret@127.0.0.1:10005/rails_event_store?pool=5 data_type: binary - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile database_url: mysql2://root:secret@127.0.0.1:10008/rails_event_store?pool=5 data_type: json diff --git a/.github/workflows/ruby_event_store-browser_coverage.yml b/.github/workflows/ruby_event_store-browser_coverage.yml index a4c369f9c0..19bcf69505 100644 --- a/.github/workflows/ruby_event_store-browser_coverage.yml +++ b/.github/workflows/ruby_event_store-browser_coverage.yml @@ -35,7 +35,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ruby_event_store-browser_mutate.yml b/.github/workflows/ruby_event_store-browser_mutate.yml index 1565d75e05..b005cb3c3e 100644 --- a/.github/workflows/ruby_event_store-browser_mutate.yml +++ b/.github/workflows/ruby_event_store-browser_mutate.yml @@ -43,7 +43,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ruby_event_store-browser_test.yml b/.github/workflows/ruby_event_store-browser_test.yml index 3cf081cf46..c166b1fa3d 100644 --- a/.github/workflows/ruby_event_store-browser_test.yml +++ b/.github/workflows/ruby_event_store-browser_test.yml @@ -43,6 +43,8 @@ jobs: fail-fast: false matrix: include: + - ruby_version: ruby-3.3 + bundle_gemfile: Gemfile - ruby_version: ruby-3.2 bundle_gemfile: Gemfile - ruby_version: ruby-3.1 @@ -51,7 +53,7 @@ jobs: bundle_gemfile: Gemfile - ruby_version: truffleruby bundle_gemfile: Gemfile - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile.rack_2_0 steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ruby_event_store-flipper_coverage.yml b/.github/workflows/ruby_event_store-flipper_coverage.yml index 0abe9926ab..5995ce1ab0 100644 --- a/.github/workflows/ruby_event_store-flipper_coverage.yml +++ b/.github/workflows/ruby_event_store-flipper_coverage.yml @@ -35,7 +35,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ruby_event_store-flipper_mutate.yml b/.github/workflows/ruby_event_store-flipper_mutate.yml index e223c22b71..59135fa8f1 100644 --- a/.github/workflows/ruby_event_store-flipper_mutate.yml +++ b/.github/workflows/ruby_event_store-flipper_mutate.yml @@ -33,7 +33,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ruby_event_store-flipper_test.yml b/.github/workflows/ruby_event_store-flipper_test.yml index f5db8d38c1..7c42ea87b8 100644 --- a/.github/workflows/ruby_event_store-flipper_test.yml +++ b/.github/workflows/ruby_event_store-flipper_test.yml @@ -33,15 +33,17 @@ jobs: fail-fast: false matrix: include: + - ruby_version: ruby-3.3 + bundle_gemfile: Gemfile - ruby_version: ruby-3.2 bundle_gemfile: Gemfile - ruby_version: ruby-3.1 bundle_gemfile: Gemfile - ruby_version: ruby-3.0 bundle_gemfile: Gemfile - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile.activesupport_6_1 - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile.activesupport_6_0 steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ruby_event_store-newrelic_coverage.yml b/.github/workflows/ruby_event_store-newrelic_coverage.yml index 1fb12ca6fb..c5e77d3817 100644 --- a/.github/workflows/ruby_event_store-newrelic_coverage.yml +++ b/.github/workflows/ruby_event_store-newrelic_coverage.yml @@ -35,7 +35,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ruby_event_store-newrelic_mutate.yml b/.github/workflows/ruby_event_store-newrelic_mutate.yml index 7faf6710c9..22aca17f4e 100644 --- a/.github/workflows/ruby_event_store-newrelic_mutate.yml +++ b/.github/workflows/ruby_event_store-newrelic_mutate.yml @@ -33,7 +33,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ruby_event_store-newrelic_test.yml b/.github/workflows/ruby_event_store-newrelic_test.yml index d47526302c..5e71481300 100644 --- a/.github/workflows/ruby_event_store-newrelic_test.yml +++ b/.github/workflows/ruby_event_store-newrelic_test.yml @@ -33,6 +33,8 @@ jobs: fail-fast: false matrix: include: + - ruby_version: ruby-3.3 + bundle_gemfile: Gemfile - ruby_version: ruby-3.2 bundle_gemfile: Gemfile - ruby_version: ruby-3.1 diff --git a/.github/workflows/ruby_event_store-outbox_coverage.yml b/.github/workflows/ruby_event_store-outbox_coverage.yml index 035e1154ab..2d3cd2acc8 100644 --- a/.github/workflows/ruby_event_store-outbox_coverage.yml +++ b/.github/workflows/ruby_event_store-outbox_coverage.yml @@ -35,7 +35,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ruby_event_store-outbox_mutate.yml b/.github/workflows/ruby_event_store-outbox_mutate.yml index 68c081e09b..36c8836762 100644 --- a/.github/workflows/ruby_event_store-outbox_mutate.yml +++ b/.github/workflows/ruby_event_store-outbox_mutate.yml @@ -33,7 +33,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ruby_event_store-outbox_test.yml b/.github/workflows/ruby_event_store-outbox_test.yml index 600c69bbde..3797a15683 100644 --- a/.github/workflows/ruby_event_store-outbox_test.yml +++ b/.github/workflows/ruby_event_store-outbox_test.yml @@ -51,6 +51,9 @@ jobs: fail-fast: false matrix: include: + - ruby_version: ruby-3.3 + bundle_gemfile: Gemfile + database_url: sqlite3:db.sqlite3 - ruby_version: ruby-3.2 bundle_gemfile: Gemfile database_url: sqlite3:db.sqlite3 @@ -60,19 +63,19 @@ jobs: - ruby_version: ruby-3.0 bundle_gemfile: Gemfile database_url: sqlite3:db.sqlite3 - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile.rails_6_1 database_url: sqlite3:db.sqlite3 - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile.rails_6_0 database_url: sqlite3:db.sqlite3 - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile.sidekiq_5_2 database_url: sqlite3:db.sqlite3 - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile database_url: mysql2://root:secret@127.0.0.1:10005/rails_event_store?pool=5 - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile database_url: mysql2://root:secret@127.0.0.1:10008/rails_event_store?pool=5 steps: diff --git a/.github/workflows/ruby_event_store-profiler_coverage.yml b/.github/workflows/ruby_event_store-profiler_coverage.yml index e53bbfeb24..7ccb6a4e85 100644 --- a/.github/workflows/ruby_event_store-profiler_coverage.yml +++ b/.github/workflows/ruby_event_store-profiler_coverage.yml @@ -35,7 +35,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ruby_event_store-profiler_mutate.yml b/.github/workflows/ruby_event_store-profiler_mutate.yml index 70e3f253fd..1ec849d891 100644 --- a/.github/workflows/ruby_event_store-profiler_mutate.yml +++ b/.github/workflows/ruby_event_store-profiler_mutate.yml @@ -33,7 +33,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ruby_event_store-profiler_test.yml b/.github/workflows/ruby_event_store-profiler_test.yml index 4b5bcda748..63c86f6465 100644 --- a/.github/workflows/ruby_event_store-profiler_test.yml +++ b/.github/workflows/ruby_event_store-profiler_test.yml @@ -33,6 +33,8 @@ jobs: fail-fast: false matrix: include: + - ruby_version: ruby-3.3 + bundle_gemfile: Gemfile - ruby_version: ruby-3.2 bundle_gemfile: Gemfile - ruby_version: ruby-3.1 diff --git a/.github/workflows/ruby_event_store-protobuf_coverage.yml b/.github/workflows/ruby_event_store-protobuf_coverage.yml index 40eaf41c5e..61bcdcafb1 100644 --- a/.github/workflows/ruby_event_store-protobuf_coverage.yml +++ b/.github/workflows/ruby_event_store-protobuf_coverage.yml @@ -35,7 +35,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ruby_event_store-protobuf_mutate.yml b/.github/workflows/ruby_event_store-protobuf_mutate.yml index 1281c5f082..a0acefe8c7 100644 --- a/.github/workflows/ruby_event_store-protobuf_mutate.yml +++ b/.github/workflows/ruby_event_store-protobuf_mutate.yml @@ -33,7 +33,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ruby_event_store-protobuf_test.yml b/.github/workflows/ruby_event_store-protobuf_test.yml index c51264ffb1..5b00beacfc 100644 --- a/.github/workflows/ruby_event_store-protobuf_test.yml +++ b/.github/workflows/ruby_event_store-protobuf_test.yml @@ -34,6 +34,9 @@ jobs: fail-fast: false matrix: include: + - ruby_version: ruby-3.3 + bundle_gemfile: Gemfile + database_url: sqlite3:db.sqlite3 - ruby_version: ruby-3.2 bundle_gemfile: Gemfile database_url: sqlite3:db.sqlite3 @@ -43,10 +46,10 @@ jobs: - ruby_version: ruby-3.0 bundle_gemfile: Gemfile database_url: sqlite3:db.sqlite3 - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile.rails_6_1 database_url: sqlite3:db.sqlite3 - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile.rails_6_0 database_url: sqlite3:db.sqlite3 steps: diff --git a/.github/workflows/ruby_event_store-rom_coverage.yml b/.github/workflows/ruby_event_store-rom_coverage.yml index 5ae9c05298..0488a00e61 100644 --- a/.github/workflows/ruby_event_store-rom_coverage.yml +++ b/.github/workflows/ruby_event_store-rom_coverage.yml @@ -35,7 +35,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ruby_event_store-rom_mutate.yml b/.github/workflows/ruby_event_store-rom_mutate.yml index a58961edd4..d405482412 100644 --- a/.github/workflows/ruby_event_store-rom_mutate.yml +++ b/.github/workflows/ruby_event_store-rom_mutate.yml @@ -33,7 +33,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ruby_event_store-rom_test.yml b/.github/workflows/ruby_event_store-rom_test.yml index 8c2d27a1fb..6c2eeca053 100644 --- a/.github/workflows/ruby_event_store-rom_test.yml +++ b/.github/workflows/ruby_event_store-rom_test.yml @@ -68,6 +68,10 @@ jobs: fail-fast: false matrix: include: + - ruby_version: ruby-3.3 + bundle_gemfile: Gemfile + database_url: sqlite:db.sqlite3 + data_type: text - ruby_version: ruby-3.2 bundle_gemfile: Gemfile database_url: sqlite:db.sqlite3 @@ -80,27 +84,27 @@ jobs: bundle_gemfile: Gemfile database_url: sqlite:db.sqlite3 data_type: text - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile database_url: postgres://postgres:secret@localhost:10015/rails_event_store?pool=5 data_type: text - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile database_url: postgres://postgres:secret@localhost:10011/rails_event_store?pool=5 data_type: text - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile database_url: postgres://postgres:secret@localhost:10015/rails_event_store?pool=5 data_type: json - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile database_url: postgres://postgres:secret@localhost:10015/rails_event_store?pool=5 data_type: jsonb - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile database_url: mysql2://root:secret@127.0.0.1:10008/rails_event_store?pool=5 data_type: text - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile database_url: mysql2://root:secret@127.0.0.1:10005/rails_event_store?pool=5 data_type: text diff --git a/.github/workflows/ruby_event_store-rspec_coverage.yml b/.github/workflows/ruby_event_store-rspec_coverage.yml index 2e932e85b5..af23fb7665 100644 --- a/.github/workflows/ruby_event_store-rspec_coverage.yml +++ b/.github/workflows/ruby_event_store-rspec_coverage.yml @@ -35,7 +35,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ruby_event_store-rspec_mutate.yml b/.github/workflows/ruby_event_store-rspec_mutate.yml index 1f71c68353..944c5b5b10 100644 --- a/.github/workflows/ruby_event_store-rspec_mutate.yml +++ b/.github/workflows/ruby_event_store-rspec_mutate.yml @@ -43,7 +43,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ruby_event_store-rspec_test.yml b/.github/workflows/ruby_event_store-rspec_test.yml index 37c96c86b9..219b1f3d84 100644 --- a/.github/workflows/ruby_event_store-rspec_test.yml +++ b/.github/workflows/ruby_event_store-rspec_test.yml @@ -43,6 +43,8 @@ jobs: fail-fast: false matrix: include: + - ruby_version: ruby-3.3 + bundle_gemfile: Gemfile - ruby_version: ruby-3.2 bundle_gemfile: Gemfile - ruby_version: ruby-3.1 diff --git a/.github/workflows/ruby_event_store-sequel_coverage.yml b/.github/workflows/ruby_event_store-sequel_coverage.yml index 3f25089b51..81197b03e7 100644 --- a/.github/workflows/ruby_event_store-sequel_coverage.yml +++ b/.github/workflows/ruby_event_store-sequel_coverage.yml @@ -35,7 +35,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ruby_event_store-sequel_mutate.yml b/.github/workflows/ruby_event_store-sequel_mutate.yml index 2de587dce0..a6559f04d7 100644 --- a/.github/workflows/ruby_event_store-sequel_mutate.yml +++ b/.github/workflows/ruby_event_store-sequel_mutate.yml @@ -33,7 +33,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ruby_event_store-sequel_test.yml b/.github/workflows/ruby_event_store-sequel_test.yml index bc97130686..4d71de2257 100644 --- a/.github/workflows/ruby_event_store-sequel_test.yml +++ b/.github/workflows/ruby_event_store-sequel_test.yml @@ -68,6 +68,10 @@ jobs: fail-fast: false matrix: include: + - ruby_version: ruby-3.3 + bundle_gemfile: Gemfile + database_url: sqlite:db.sqlite3 + data_type: text - ruby_version: ruby-3.2 bundle_gemfile: Gemfile database_url: sqlite:db.sqlite3 @@ -80,27 +84,27 @@ jobs: bundle_gemfile: Gemfile database_url: sqlite:db.sqlite3 data_type: text - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile database_url: postgres://postgres:secret@localhost:10015/rails_event_store?pool=5 data_type: text - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile database_url: postgres://postgres:secret@localhost:10011/rails_event_store?pool=5 data_type: text - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile database_url: postgres://postgres:secret@localhost:10015/rails_event_store?pool=5 data_type: json - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile database_url: postgres://postgres:secret@localhost:10015/rails_event_store?pool=5 data_type: jsonb - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile database_url: mysql2://root:secret@127.0.0.1:10008/rails_event_store?pool=5 data_type: text - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile database_url: mysql2://root:secret@127.0.0.1:10005/rails_event_store?pool=5 data_type: text diff --git a/.github/workflows/ruby_event_store-sidekiq_scheduler_coverage.yml b/.github/workflows/ruby_event_store-sidekiq_scheduler_coverage.yml index 1efccd7f70..6311e2c236 100644 --- a/.github/workflows/ruby_event_store-sidekiq_scheduler_coverage.yml +++ b/.github/workflows/ruby_event_store-sidekiq_scheduler_coverage.yml @@ -35,7 +35,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ruby_event_store-sidekiq_scheduler_mutate.yml b/.github/workflows/ruby_event_store-sidekiq_scheduler_mutate.yml index 2240e8c4f1..0d7980750e 100644 --- a/.github/workflows/ruby_event_store-sidekiq_scheduler_mutate.yml +++ b/.github/workflows/ruby_event_store-sidekiq_scheduler_mutate.yml @@ -33,7 +33,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ruby_event_store-sidekiq_scheduler_test.yml b/.github/workflows/ruby_event_store-sidekiq_scheduler_test.yml index 560df2f0a2..2afb931b71 100644 --- a/.github/workflows/ruby_event_store-sidekiq_scheduler_test.yml +++ b/.github/workflows/ruby_event_store-sidekiq_scheduler_test.yml @@ -33,15 +33,17 @@ jobs: fail-fast: false matrix: include: + - ruby_version: ruby-3.3 + bundle_gemfile: Gemfile - ruby_version: ruby-3.2 bundle_gemfile: Gemfile - ruby_version: ruby-3.1 bundle_gemfile: Gemfile - ruby_version: ruby-3.0 bundle_gemfile: Gemfile - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile.sidekiq_6_5 - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile.sidekiq_5_2 steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ruby_event_store-transformations_coverage.yml b/.github/workflows/ruby_event_store-transformations_coverage.yml index 22074ee0fb..7e85db96ca 100644 --- a/.github/workflows/ruby_event_store-transformations_coverage.yml +++ b/.github/workflows/ruby_event_store-transformations_coverage.yml @@ -35,7 +35,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ruby_event_store-transformations_mutate.yml b/.github/workflows/ruby_event_store-transformations_mutate.yml index 6b05cfb802..7c5c63d7be 100644 --- a/.github/workflows/ruby_event_store-transformations_mutate.yml +++ b/.github/workflows/ruby_event_store-transformations_mutate.yml @@ -33,7 +33,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ruby_event_store-transformations_test.yml b/.github/workflows/ruby_event_store-transformations_test.yml index f9e67a91ec..f4de04e5b6 100644 --- a/.github/workflows/ruby_event_store-transformations_test.yml +++ b/.github/workflows/ruby_event_store-transformations_test.yml @@ -33,6 +33,8 @@ jobs: fail-fast: false matrix: include: + - ruby_version: ruby-3.3 + bundle_gemfile: Gemfile - ruby_version: ruby-3.2 bundle_gemfile: Gemfile - ruby_version: ruby-3.1 diff --git a/.github/workflows/ruby_event_store_coverage.yml b/.github/workflows/ruby_event_store_coverage.yml index 641362c1bd..965dce3e91 100644 --- a/.github/workflows/ruby_event_store_coverage.yml +++ b/.github/workflows/ruby_event_store_coverage.yml @@ -35,7 +35,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ruby_event_store_mutate.yml b/.github/workflows/ruby_event_store_mutate.yml index f8adf97305..82e328e7b8 100644 --- a/.github/workflows/ruby_event_store_mutate.yml +++ b/.github/workflows/ruby_event_store_mutate.yml @@ -43,7 +43,7 @@ jobs: fail-fast: false matrix: include: - - ruby_version: ruby-3.2 + - ruby_version: ruby-3.3 bundle_gemfile: Gemfile steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ruby_event_store_test.yml b/.github/workflows/ruby_event_store_test.yml index 4f66385e26..1a5d1b531f 100644 --- a/.github/workflows/ruby_event_store_test.yml +++ b/.github/workflows/ruby_event_store_test.yml @@ -43,6 +43,8 @@ jobs: fail-fast: false matrix: include: + - ruby_version: ruby-3.3 + bundle_gemfile: Gemfile - ruby_version: ruby-3.2 bundle_gemfile: Gemfile - ruby_version: ruby-3.1 diff --git a/support/ci/generate b/support/ci/generate index afcb912b04..5252ea8fd2 100755 --- a/support/ci/generate +++ b/support/ci/generate @@ -12,11 +12,21 @@ end class CI RUBY_VERSIONS = [ - MRI_RUBY = [RUBY_3_2 = "ruby-3.2", RUBY_3_1 = "ruby-3.1", RUBY_3_0 = "ruby-3.0"], + MRI_RUBY = [ + RUBY_3_3 = "ruby-3.3", + RUBY_3_2 = "ruby-3.2", + RUBY_3_1 = "ruby-3.1", + RUBY_3_0 = "ruby-3.0" + ], TRUFFLE_RUBY = "truffleruby" ].flatten - DATA_TYPES = [DATA_TEXT = "text", DATA_BINARY = "binary", DATA_JSON = "json", DATA_JSONB = "jsonb"] + DATA_TYPES = [ + DATA_TEXT = "text", + DATA_BINARY = "binary", + DATA_JSON = "json", + DATA_JSONB = "jsonb" + ] DATA_TYPES_IN_AR = [DATA_BINARY, DATA_TYPES.drop(2)].flatten DATA_TYPES_IN_SEQUEL = [DATA_TEXT, DATA_TYPES.drop(2)].flatten @@ -25,8 +35,10 @@ class CI SQLITE = "sqlite:db.sqlite3", SQLITE3 = "sqlite3:db.sqlite3", POSTGRES = [ - POSTGRES_15 = "postgres://postgres:secret@localhost:10015/rails_event_store?pool=5", - POSTGRES_11 = "postgres://postgres:secret@localhost:10011/rails_event_store?pool=5" + POSTGRES_15 = + "postgres://postgres:secret@localhost:10015/rails_event_store?pool=5", + POSTGRES_11 = + "postgres://postgres:secret@localhost:10011/rails_event_store?pool=5" ], MYSQL = [ MYSQL_8 = "mysql2://root:secret@127.0.0.1:10008/rails_event_store?pool=5", @@ -36,11 +48,20 @@ class CI GEMFILE = "Gemfile" - RAILS_GEMFILES = [GEMFILE_RAILS_6_1 = "Gemfile.rails_6_1", GEMFILE_RAILS_6_0 = "Gemfile.rails_6_0"].flatten + RAILS_GEMFILES = [ + GEMFILE_RAILS_6_1 = "Gemfile.rails_6_1", + GEMFILE_RAILS_6_0 = "Gemfile.rails_6_0" + ].flatten - AS_GEMFILES = [GEMFILE_AS_6_1 = "Gemfile.activesupport_6_1", GEMFILE_AS_6_0 = "Gemfile.activesupport_6_0"] + AS_GEMFILES = [ + GEMFILE_AS_6_1 = "Gemfile.activesupport_6_1", + GEMFILE_AS_6_0 = "Gemfile.activesupport_6_0" + ] - SIDEKIQ_GEMFILES = [GEMFILE_SIDEKIQ_6_5 = "Gemfile.sidekiq_6_5", GEMFILE_SIDEKIQ_5_2 = "Gemfile.sidekiq_5_2"] + SIDEKIQ_GEMFILES = [ + GEMFILE_SIDEKIQ_6_5 = "Gemfile.sidekiq_6_5", + GEMFILE_SIDEKIQ_5_2 = "Gemfile.sidekiq_5_2" + ] def workflows [ @@ -55,14 +76,29 @@ class CI release_coverage("ruby_event_store-rspec"), release_test( "ruby_event_store-browser", - steps: [checkout, verify_lockfile, setup_ruby, setup_node, cache_elm, make("install-npm test")], - matrix: generate(ruby_version(RUBY_VERSIONS), bundle_gemfile(GEMFILE, "Gemfile.rack_2_0")) + steps: [ + checkout, + verify_lockfile, + setup_ruby, + setup_node, + cache_elm, + make("install-npm test") + ], + matrix: + generate( + ruby_version(RUBY_VERSIONS), + bundle_gemfile(GEMFILE, "Gemfile.rack_2_0") + ) ), release_mutate("ruby_event_store-browser"), release_coverage("ruby_event_store-browser"), release_test( "rails_event_store", - matrix: generate(ruby_version(RUBY_VERSIONS), bundle_gemfile(GEMFILE, RAILS_GEMFILES)) + matrix: + generate( + ruby_version(RUBY_VERSIONS), + bundle_gemfile(GEMFILE, RAILS_GEMFILES) + ) ), release_mutate("rails_event_store"), release_coverage("rails_event_store"), @@ -74,7 +110,10 @@ class CI ruby_version(RUBY_VERSIONS), bundle_gemfile(GEMFILE), join( - generate(database_url(SQLITE3), data_type(DATA_TYPES_IN_AR.take(1))), + generate( + database_url(SQLITE3), + data_type(DATA_TYPES_IN_AR.take(1)) + ), generate(database_url(POSTGRES), data_type(DATA_TYPES_IN_AR)), generate(database_url(MYSQL), data_type(DATA_TYPES_IN_AR.take(2))) ) @@ -84,7 +123,8 @@ class CI release_coverage("ruby_event_store-active_record"), contrib_test( "ruby_event_store-flipper", - matrix: generate(ruby_version(MRI_RUBY), bundle_gemfile(GEMFILE, AS_GEMFILES)) + matrix: + generate(ruby_version(MRI_RUBY), bundle_gemfile(GEMFILE, AS_GEMFILES)) ), contrib_mutate("ruby_event_store-flipper"), contrib_coverage("ruby_event_store-flipper"), @@ -102,7 +142,14 @@ class CI database_url(SQLITE3, MYSQL_5, MYSQL_8) ) ), - steps: [checkout, setup_nix, setup_cachix, verify_lockfile, setup_ruby, make_nix_shell("test")] + steps: [ + checkout, + setup_nix, + setup_cachix, + verify_lockfile, + setup_ruby, + make_nix_shell("test") + ] ), contrib_mutate( "ruby_event_store-outbox", @@ -117,7 +164,14 @@ class CI ), contrib_coverage( "ruby_event_store-outbox", - steps: [checkout, setup_nix, setup_cachix, verify_lockfile, setup_ruby, make_nix_shell("mutate")] + steps: [ + checkout, + setup_nix, + setup_cachix, + verify_lockfile, + setup_ruby, + make_nix_shell("mutate") + ] ), contrib_test("ruby_event_store-profiler"), contrib_mutate("ruby_event_store-profiler"), @@ -191,8 +245,21 @@ class CI contrib_coverage("ruby_event_store-sequel"), contrib_test( "ruby_event_store-sidekiq_scheduler", - matrix: join(generate(ruby_version(MRI_RUBY), bundle_gemfile(GEMFILE, SIDEKIQ_GEMFILES))), - steps: [checkout, setup_nix, setup_cachix, verify_lockfile, setup_ruby, make_nix_shell("test")] + matrix: + join( + generate( + ruby_version(MRI_RUBY), + bundle_gemfile(GEMFILE, SIDEKIQ_GEMFILES) + ) + ), + steps: [ + checkout, + setup_nix, + setup_cachix, + verify_lockfile, + setup_ruby, + make_nix_shell("test") + ] ), contrib_mutate( "ruby_event_store-sidekiq_scheduler", @@ -207,7 +274,14 @@ class CI ), contrib_coverage( "ruby_event_store-sidekiq_scheduler", - steps: [checkout, setup_nix, setup_cachix, verify_lockfile, setup_ruby, make_nix_shell("mutate")] + steps: [ + checkout, + setup_nix, + setup_cachix, + verify_lockfile, + setup_ruby, + make_nix_shell("mutate") + ] ), contrib_test("ruby_event_store-transformations"), contrib_mutate("ruby_event_store-transformations"), @@ -240,7 +314,10 @@ class CI end def verify_lockfile - { "run" => "test -e ${{ env.BUNDLE_GEMFILE }}.lock", "working-directory" => "${{ env.WORKING_DIRECTORY }}" } + { + "run" => "test -e ${{ env.BUNDLE_GEMFILE }}.lock", + "working-directory" => "${{ env.WORKING_DIRECTORY }}" + } end def setup_ruby @@ -260,7 +337,8 @@ class CI "with" => { "node-version" => 18, "cache" => "npm", - "cache-dependency-path" => "${{ env.WORKING_DIRECTORY }}/elm/package-lock.json" + "cache-dependency-path" => + "${{ env.WORKING_DIRECTORY }}/elm/package-lock.json" } } end @@ -270,13 +348,19 @@ class CI "uses" => "actions/cache@v3", "with" => { "path" => "~/.elm", - "key" => "elm-${{ hashFiles(format('{0}/elm/elm.json', env.WORKING_DIRECTORY)) }}" + "key" => + "elm-${{ hashFiles(format('{0}/elm/elm.json', env.WORKING_DIRECTORY)) }}" } } end def setup_nix - { "uses" => "cachix/install-nix-action@v22", "with" => { "nix_path" => "nixpkgs=channel:nixos-unstable" } } + { + "uses" => "cachix/install-nix-action@v22", + "with" => { + "nix_path" => "nixpkgs=channel:nixos-unstable" + } + } end def setup_cachix @@ -290,7 +374,8 @@ class CI end def make_nix_shell(target, imports: ["redis.nix"]) - { "run" => <<~SHELL, "working-directory" => "${{ env.WORKING_DIRECTORY }}" } + { + "run" => <<~SHELL, nix-shell --run "make #{target}" -E" with import { }; mkShell { @@ -300,10 +385,15 @@ class CI } " SHELL + "working-directory" => "${{ env.WORKING_DIRECTORY }}" + } end def make(target) - { "run" => "make #{target}", "working-directory" => "${{ env.WORKING_DIRECTORY }}" } + { + "run" => "make #{target}", + "working-directory" => "${{ env.WORKING_DIRECTORY }}" + } end def upload_artifact(name) @@ -328,11 +418,17 @@ class CI end def set_short_sha_env - { "run" => "echo \"SHORT_SHA=$(git rev-parse --short=12 HEAD)\" >> $GITHUB_ENV" } + { + "run" => + "echo \"SHORT_SHA=$(git rev-parse --short=12 HEAD)\" >> $GITHUB_ENV" + } end def aws_s3_sync - { "run" => "aws s3 sync ${{ env.WORKING_DIRECTORY }}/public s3://ruby-event-store-assets/${{ env.SHORT_SHA }}" } + { + "run" => + "aws s3 sync ${{ env.WORKING_DIRECTORY }}/public s3://ruby-event-store-assets/${{ env.SHORT_SHA }}" + } end end include Actions @@ -361,22 +457,43 @@ class CI def release_triggers(workflow_name) paths = release_paths(workflow_name) - [manual_trigger, api_trigger, push_trigger(paths.dup), pr_trigger(paths.dup)] + [ + manual_trigger, + api_trigger, + push_trigger(paths.dup), + pr_trigger(paths.dup) + ] end def contrib_triggers(workflow_name, working_directory) paths = contrib_paths(workflow_name, working_directory) - [manual_trigger, api_trigger, push_trigger(paths.dup), pr_trigger(paths.dup)] + [ + manual_trigger, + api_trigger, + push_trigger(paths.dup), + pr_trigger(paths.dup) + ] end def coverage_triggers(workflow_name, working_directory) paths = coverage_paths(workflow_name, working_directory) - [manual_trigger, api_trigger, push_trigger(paths.dup), pr_trigger(paths.dup), scheduled_trigger] + [ + manual_trigger, + api_trigger, + push_trigger(paths.dup), + pr_trigger(paths.dup), + scheduled_trigger + ] end def dres_triggers(workflow_name) paths = dres_paths(workflow_name) - [manual_trigger, api_trigger, push_trigger(paths.dup), pr_trigger(paths.dup)] + [ + manual_trigger, + api_trigger, + push_trigger(paths.dup), + pr_trigger(paths.dup) + ] end def release_paths(workflow_name) @@ -395,13 +512,19 @@ class CI end def contrib_paths(workflow_name, working_directory) - [own_paths(working_directory), workflow_paths(workflow_name), support_paths].reduce(&:concat).uniq + [ + own_paths(working_directory), + workflow_paths(workflow_name), + support_paths + ].reduce(&:concat).uniq end def coverage_paths(workflow_name, working_directory) - [[working_directory].map { |wd| "#{wd}/Gemfile.lock" }, workflow_paths(workflow_name), support_paths].reduce( - &:concat - ).uniq + [ + [working_directory].map { |wd| "#{wd}/Gemfile.lock" }, + workflow_paths(workflow_name), + support_paths + ].reduce(&:concat).uniq end def dres_paths(workflow_name) @@ -436,7 +559,8 @@ class CI "POSTGRES_PASSWORD" => "secret" }, "ports" => ["10011:5432"], - "options" => "--health-cmd \"pg_isready\" --health-interval 10s --health-timeout 5s --health-retries 5" + "options" => + "--health-cmd \"pg_isready\" --health-interval 10s --health-timeout 5s --health-retries 5" } } end @@ -450,7 +574,8 @@ class CI "POSTGRES_PASSWORD" => "secret" }, "ports" => ["10015:5432"], - "options" => "--health-cmd \"pg_isready\" --health-interval 10s --health-timeout 5s --health-retries 5" + "options" => + "--health-cmd \"pg_isready\" --health-interval 10s --health-timeout 5s --health-retries 5" } } end @@ -464,7 +589,8 @@ class CI "MYSQL_ROOT_PASSWORD" => "secret" }, "ports" => ["10008:3306"], - "options" => "--health-cmd \"mysqladmin ping\" --health-interval 10s --health-timeout 5s --health-retries 5" + "options" => + "--health-cmd \"mysqladmin ping\" --health-interval 10s --health-timeout 5s --health-retries 5" } } end @@ -478,7 +604,8 @@ class CI "MYSQL_ROOT_PASSWORD" => "secret" }, "ports" => ["10005:3306"], - "options" => "--health-cmd \"mysqladmin ping\" --health-interval 10s --health-timeout 5s --health-retries 5" + "options" => + "--health-cmd \"mysqladmin ping\" --health-interval 10s --health-timeout 5s --health-retries 5" } } end @@ -543,10 +670,23 @@ class CI end def to_h - { "name" => name, "on" => triggers.reduce(&:merge), "jobs" => { job_name => job } } + { + "name" => name, + "on" => triggers.reduce(&:merge), + "jobs" => { + job_name => job + } + } end - attr_reader :gem, :job_name, :name, :working_directory, :matrix, :steps, :services, :triggers + attr_reader :gem, + :job_name, + :name, + :working_directory, + :matrix, + :steps, + :services, + :triggers private @@ -554,7 +694,9 @@ class CI { "runs-on" => "ubuntu-20.04", "timeout-minutes" => 120, - "env" => { "WORKING_DIRECTORY" => working_directory }.merge(env(matrix)), + "env" => { "WORKING_DIRECTORY" => working_directory }.merge( + env(matrix) + ), "services" => services.reduce(&:merge), "strategy" => { "fail-fast" => false, @@ -563,14 +705,17 @@ class CI } }, "steps" => steps - }.reject { |k, _| k == "services" && services.empty? }.reject { |k, _| k == "strategy" && matrix.empty? } + }.reject { |k, _| k == "services" && services.empty? } + .reject { |k, _| k == "strategy" && matrix.empty? } end def env(matrix) matrix .take(1) .reduce({}) do |acc, matrix_item| - matrix_item.reduce(acc) { |acc, (key, _)| acc.merge(key.upcase => "${{ matrix.#{key} }}") } + matrix_item.reduce(acc) do |acc, (key, _)| + acc.merge(key.upcase => "${{ matrix.#{key} }}") + end end end end @@ -597,7 +742,12 @@ class CI def release_mutate( name, matrix: generate(ruby_version(MRI_RUBY.take(1)), bundle_gemfile(GEMFILE)), - steps: [checkout(depth: 0), verify_lockfile, setup_ruby, make("mutate-changes")], + steps: [ + checkout(depth: 0), + verify_lockfile, + setup_ruby, + make("mutate-changes") + ], ** ) Workflow.new(name, job_name: "mutate", matrix: matrix, steps: steps, **) @@ -607,7 +757,12 @@ class CI name, working_directory: "contrib/#{name}", matrix: generate(ruby_version(MRI_RUBY.take(1)), bundle_gemfile(GEMFILE)), - steps: [checkout(depth: 0), verify_lockfile, setup_ruby, make("mutate-changes")], + steps: [ + checkout(depth: 0), + verify_lockfile, + setup_ruby, + make("mutate-changes") + ], ** ) Workflow.new( @@ -687,7 +842,13 @@ class CI end def as_yaml(content) - Psych.safe_dump(content, line_width: 120).lines.drop(1).join.strip.gsub(/'on':\n/, "on:\n") + Psych + .safe_dump(content, line_width: 120) + .lines + .drop(1) + .join + .strip + .gsub(/'on':\n/, "on:\n") end def initialize(workflows_root, template_root) @@ -698,4 +859,7 @@ class CI attr_reader :workflows_root, :template_root end -CI.new(File.join(__dir__, "../../.github/workflows/"), __dir__).as_github_actions +CI.new( + File.join(__dir__, "../../.github/workflows/"), + __dir__ +).as_github_actions