Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
4488 commits
Select commit Hold shift + click to select a range
2b238b1
Merge pull request #5596 from rmosolgo/exec-next-finalizers
rmosolgo Apr 16, 2026
c011759
Fix multiplex tracing docs, it should be super not yield. fixes #5599
rmosolgo Apr 17, 2026
238f193
Require transitive interface names when loading a schema from SDL
rmosolgo Apr 17, 2026
00276ab
Fix lint error
rmosolgo Apr 17, 2026
a66a3b2
Start on new InputValues implementation
rmosolgo Apr 17, 2026
9d6481f
Rename execution_next_mode -> execution_mode
rmosolgo Apr 17, 2026
3fb6431
Move runtime code out of Next namespace
rmosolgo Apr 17, 2026
15b16f5
Merge field extension methods
rmosolgo Apr 17, 2026
b9c9334
Update tests
rmosolgo Apr 17, 2026
c39f096
Update extension signature
rmosolgo Apr 17, 2026
245cc65
Merge pull request #5603 from rmosolgo/next-rename
rmosolgo Apr 17, 2026
cf39cf5
Remove needless rails-ujs require
rmosolgo Apr 17, 2026
7b552cd
Merge pull request #5604 from rmosolgo/fix-system-tests
rmosolgo Apr 17, 2026
eab6e62
Merge branch 'master' into exec-next-input-values
rmosolgo Apr 20, 2026
e9cf98e
Skeleton InputValues; migrate callers to new class
rmosolgo Apr 20, 2026
b989bda
basic loads: implementation for InputValues
rmosolgo Apr 21, 2026
7dc50fe
Expand input values coverage
rmosolgo Apr 21, 2026
3d1ef83
Fix spec and lint
rmosolgo Apr 21, 2026
c337e7d
Clean up comments, don't run loads for subscription fingerprints
rmosolgo Apr 21, 2026
770d479
Improve prepare application
rmosolgo Apr 21, 2026
5a76507
Improve missing variable handling, error propagation
rmosolgo Apr 22, 2026
2c40511
Improve handling of missing arguments
rmosolgo Apr 22, 2026
f2e01ab
Add debugging info
rmosolgo Apr 22, 2026
3b95062
Fix test setup
rmosolgo Apr 22, 2026
cd37ef0
Put debugging info back
rmosolgo Apr 22, 2026
e22956d
Fix test setup
rmosolgo Apr 22, 2026
7267dd1
Merge pull request #5605 from rmosolgo/exec-next-input-values
rmosolgo Apr 22, 2026
e383faf
Initialize input objects
rmosolgo Apr 23, 2026
a96c899
Merge pull request #5606 from rmosolgo/exec-next-more-input-fixes
rmosolgo Apr 23, 2026
7913a58
Use a single results array to simplify and speed up authorized fields
rmosolgo Apr 23, 2026
2463bb3
reformat condition for better tracing
rmosolgo Apr 23, 2026
7a3c843
Merge pull request #5607 from rmosolgo/exec-next-authorization-optimi…
rmosolgo Apr 23, 2026
4dbb7a0
2.5.24
rmosolgo Apr 23, 2026
b35b106
properly return false from fields with extensions
rmosolgo Apr 24, 2026
5500506
Merge pull request #5610 from rmosolgo/fix-extension-returning-false
rmosolgo Apr 24, 2026
fc642c0
2.5.25
rmosolgo Apr 24, 2026
0dfa6c6
Run Resolver#ready? with exec-next
rmosolgo Apr 24, 2026
be476f7
Fix ready error handling
rmosolgo Apr 24, 2026
7ce88f4
more migration docs
rmosolgo Apr 24, 2026
f4614bb
Merge pull request #5611 from rmosolgo/exec-next-ready
rmosolgo Apr 24, 2026
a1e0b0e
pro 1.30.0 and enterprise 1.7.0
rmosolgo Apr 24, 2026
19a6a93
Merge pull request #5602 from rmosolgo/sdl-transitive-deps-error
rmosolgo Apr 24, 2026
da5209d
2.6.0, add pro-1.30.0 checksum
rmosolgo Apr 24, 2026
88d6c1c
Merge commit from fork
rmosolgo Apr 27, 2026
d24f518
2.6.1
rmosolgo Apr 27, 2026
7bd696f
Handle argument errors during directives_include
rmosolgo Apr 27, 2026
fd0d761
Fix path on directive validation errors
rmosolgo Apr 27, 2026
e326fff
Fix debug string in ParseError message
rmosolgo Apr 27, 2026
702509b
Use a dedicated end-of-file error message
rmosolgo Apr 27, 2026
28aba09
Merge pull request #5613 from rmosolgo/fix-parser-error-message
rmosolgo Apr 27, 2026
1dcebb3
Merge branch 'master' into directives-arg-error
rmosolgo Apr 27, 2026
23e5dbc
Merge pull request #5612 from rmosolgo/directives-arg-error
rmosolgo Apr 27, 2026
1a69665
update Execution::Next docs
rmosolgo Apr 28, 2026
ef67059
more docs updates
rmosolgo Apr 28, 2026
88feb39
Add test for sibling loading with list
rmosolgo Apr 29, 2026
a4ee676
Merge pull request #5614 from rmosolgo/better-mutation-loads
rmosolgo Apr 29, 2026
3f76dd2
Merge branch 'master' into async-dataloader-deadlock-fix
rmosolgo Apr 29, 2026
6a7b32b
Raise a descriptive error when a field definition isn't found at runtime
rmosolgo Apr 29, 2026
cd97340
Merge pull request #5615 from rmosolgo/better-missing-field-error
rmosolgo Apr 29, 2026
35773e1
Fix Dataloader#with for JRuby
rmosolgo Apr 29, 2026
dec3c72
Merge pull request #5616 from rmosolgo/jruby-args-fix
rmosolgo Apr 29, 2026
c84f7a6
Try a different job management flow
rmosolgo May 1, 2026
1f4397d
Add test for grouping lazy calls in resolve_type
rmosolgo Mar 28, 2024
0d738ee
Fill out test, add new value capture
rmosolgo May 1, 2026
fae471f
Fix lint error
rmosolgo May 1, 2026
434525e
Merge pull request #5618 from rmosolgo/interface-resolve-type-test
rmosolgo May 1, 2026
f8ac18d
Add Next as_default: true option
rmosolgo May 1, 2026
210cb25
Make exec-next as_default: true inherited, use it everywhere when GRA…
rmosolgo May 1, 2026
9d7d789
Update RelayClassicMutation for Execution::Next
rmosolgo May 4, 2026
fddf4de
Improve support for subscription updates, update ActionCable subscrip…
rmosolgo May 4, 2026
c068062
Update union_spec.rb and improve type resolution
rmosolgo May 4, 2026
e71732f
Update NewRelicTrace spec
rmosolgo May 4, 2026
e318967
UPdate datetime spec
rmosolgo May 5, 2026
f77a411
Update Execution::Errors spec, improve error handling
rmosolgo May 5, 2026
249c5c9
Update variables spec
rmosolgo May 5, 2026
9de21ed
Update Input object handling and spec
rmosolgo May 5, 2026
1e0abba
Fix spec
rmosolgo May 5, 2026
a4a04de
Update mutation test
rmosolgo May 5, 2026
794707a
Update context spec
rmosolgo May 5, 2026
57c9408
Update validation spec
rmosolgo May 5, 2026
2ef2e5f
Update timeout and variables tests
rmosolgo May 5, 2026
f743b1a
fix lint and spec
rmosolgo May 5, 2026
adfa231
Update star_wars schema.rb
rmosolgo May 6, 2026
03642f7
Update more tests
rmosolgo May 6, 2026
29cb41a
Fix some tests
rmosolgo May 6, 2026
b679bb3
Update dynamic members spec
rmosolgo May 6, 2026
498b8ff
feat(javascript_client): add ESM build output
mattander May 6, 2026
5c50450
Update more tests
rmosolgo May 6, 2026
a7702b5
Update query_spec
rmosolgo May 6, 2026
a3a71df
Update interpreter_spec.rb
rmosolgo May 6, 2026
b583160
update single-input spec
rmosolgo May 6, 2026
4e7126e
Update scalar spec, fix for untyped inputs
rmosolgo May 7, 2026
1a23377
Update argument spec, implement replace_null_with_default_value
rmosolgo May 7, 2026
3c7c8e1
Update visibility spec
rmosolgo May 7, 2026
0d775a5
Update required_validator_spec and field_extension_spec
rmosolgo May 7, 2026
a8fc9e7
Update more specs
rmosolgo May 7, 2026
280df95
Update more specs
rmosolgo May 7, 2026
6d07e02
Skip query directive tests for now
rmosolgo May 7, 2026
cf0f09c
Update async_dataloader spec
rmosolgo May 7, 2026
e8978ef
Update one_of_spec
rmosolgo May 7, 2026
ce0fa06
Update multiplex_spec
rmosolgo May 7, 2026
7da65c0
Update input_values_spec
rmosolgo May 7, 2026
4036dec
Fix field method name in spec
rmosolgo May 7, 2026
8d06657
Update dataloader_spec.rb
rmosolgo May 7, 2026
360f6bc
Fix lint, update scout spec
rmosolgo May 7, 2026
4ca03cb
Update specs
rmosolgo May 7, 2026
dabc2dc
Fix batching resolved_type
rmosolgo May 7, 2026
c010e8f
Update more tests
rmosolgo May 7, 2026
fadad67
Update AppSignal trace
rmosolgo May 8, 2026
ea32954
Update partial_spec
rmosolgo May 8, 2026
78b2ce4
Update directive spec
rmosolgo May 8, 2026
a3e77b3
Fix error ast_node assignment
rmosolgo May 8, 2026
298292a
Make all finalizers handle ast_node(s)
rmosolgo May 8, 2026
e31a764
Update interface_spec
rmosolgo May 8, 2026
f561e9f
update logger_spec
rmosolgo May 8, 2026
f16b145
Update nonblocking_dataloader_spec
rmosolgo May 8, 2026
f50042a
update rails schema_spec.rb
rmosolgo May 8, 2026
dc0a205
Update analysis and has_arguments specs
rmosolgo May 8, 2026
b455cba
Update AS::N tracing spec
rmosolgo May 8, 2026
51c56d1
Update transform_spec
rmosolgo May 8, 2026
56db7b2
Update instrumentation_spec
rmosolgo May 8, 2026
95483b8
Update perfetto trace
rmosolgo May 8, 2026
7e095fb
Update trace modes spec
rmosolgo May 8, 2026
492508c
Update max_query_complexity_spec
rmosolgo May 8, 2026
aab6d72
Update date_spec
rmosolgo May 8, 2026
6c31667
Update dataloader specs
rmosolgo May 8, 2026
fd42ef4
update query_logs_spec
rmosolgo May 8, 2026
f63f3a9
Update platform_trace_spec
rmosolgo May 8, 2026
ed5433d
Update flagged_spec
rmosolgo May 8, 2026
28a2dc9
Update scout_trace
rmosolgo May 8, 2026
7813aa1
Update schema_spec
rmosolgo May 8, 2026
8c5f755
Update validator_spec
rmosolgo May 8, 2026
25dbcbe
Update notifications_trace_spec
rmosolgo May 8, 2026
5f07174
update_profile_spec
rmosolgo May 8, 2026
5bc39b0
Update connection extension spec
rmosolgo May 8, 2026
a2d9d1d
Update feature_spec
rmosolgo May 8, 2026
2bfe174
Update enum_spec
rmosolgo May 8, 2026
e865f7d
update prometheus_tracing and connections specs
rmosolgo May 8, 2026
885267f
Update always_visible spec
rmosolgo May 8, 2026
87ed4cc
Update string_spec
rmosolgo May 8, 2026
34ebe67
update current_spec
rmosolgo May 8, 2026
cf998e0
Update connections errors
rmosolgo May 8, 2026
f8207d5
Update lookahead_spec
rmosolgo May 8, 2026
a80c9b2
Update ractor_shareable_spec
rmosolgo May 8, 2026
63cf9f8
Update statsd_tracing_spec.rb
rmosolgo May 8, 2026
a696d34
update appoptics trace spec
rmosolgo May 8, 2026
46b18d8
Fix some subscription_spec.rb
rmosolgo May 8, 2026
b214940
Fix subscription for old runtime
rmosolgo May 8, 2026
a2c11eb
Migrate appoptics_tracing_spec
rmosolgo May 11, 2026
4e1635b
Skip test for Object.wrap
rmosolgo May 11, 2026
1da212d
Use raise instead of throw for easier rescuing; update Subscription f…
rmosolgo May 11, 2026
97dd867
Dup errors when used at multiple paths, skip some tests for now
rmosolgo May 11, 2026
82f5d37
Migrate rails async_dataloader spec
rmosolgo May 11, 2026
5c43bc7
Merge pull request #5619 from rmosolgo/next-as-default-option
rmosolgo May 11, 2026
34afbc9
Fix Ruby warnings
duffuniverse May 12, 2026
19f5bac
Start categorizing exec-next skips
rmosolgo May 12, 2026
bd39b27
fix detailed trace on anonymous classes
rmosolgo May 12, 2026
c4f62ef
Merge pull request #5624 from rmosolgo/perfetto-fix-anon-classes
rmosolgo May 12, 2026
f221578
use methods for exec_next test behaviors
rmosolgo May 12, 2026
4b383bc
Document helpers
rmosolgo May 12, 2026
ecffdc6
document as_default
rmosolgo May 12, 2026
06bbc65
Fix lint error
rmosolgo May 12, 2026
4afdf6f
Merge pull request #5625 from rmosolgo/exec-next-test-cleanup
rmosolgo May 12, 2026
e6f0868
2.6.2
rmosolgo May 12, 2026
3d92cd7
Backtrace: fix loop when error preparing arguments
rmosolgo May 13, 2026
357251c
Skip on exec-next
rmosolgo May 13, 2026
79145f0
Interface: only get ResolverMethods from interfaces
rmosolgo May 13, 2026
ef16bd0
Parser: fix escape_single_quoted_newlines with nested string
rmosolgo May 13, 2026
43fe983
Merge pull request #5630 from rmosolgo/fix-newline-escape-inside-trip…
rmosolgo May 13, 2026
627d07b
Remove focus
rmosolgo May 13, 2026
779f631
Merge pull request #5628 from rmosolgo/fix-backtrace-error
rmosolgo May 13, 2026
a6ddab8
Merge pull request #5629 from rmosolgo/fix-resolver-methods-lookup
rmosolgo May 13, 2026
dfce8ee
Cache type intersection results in QueryComplexity analyzer
sobrinho May 13, 2026
67d323c
Remove complexity benchmark script
sobrinho May 13, 2026
6a15de3
Fix intersect cache key to avoid collisions on 64-bit systems
sobrinho May 13, 2026
53389cf
Address the warning by using z in the case statement
duffuniverse May 14, 2026
5637fd9
Don't crash analyzer when @skip/@include arg fails coercion
artplan1 May 14, 2026
242866a
Merge pull request #5623 from duffuniverse/fix-ruby-warnings-in-tests
rmosolgo May 14, 2026
5075e45
Merge pull request #5633 from artplan1/fix-null-directive-arg-analyze…
rmosolgo May 14, 2026
7128ec8
Use a two-layer cache by identity
rmosolgo May 14, 2026
3594864
Reduce allocations and loops in query_complexity.rb
rmosolgo May 14, 2026
e6ae0c6
go back to ==
rmosolgo May 14, 2026
9ea31cb
Merge pull request #5631 from sobrinho/claude/tender-nobel-b601b8
rmosolgo May 14, 2026
622ec4f
Pass first query if there is only 1
rmosolgo May 15, 2026
9ca2c62
Merge pull request #5634 from rmosolgo/execute_query_lazy-compat
rmosolgo May 15, 2026
b0e4124
Visibility: require all root config before preloading
rmosolgo May 15, 2026
8c8ab4a
Add changelog entry for tracing change in 2.5.12
rmosolgo May 15, 2026
69fcb1a
Merge branch 'master' into async-dataloader-deadlock-fix
rmosolgo May 19, 2026
08a86a3
Fix `required: :nullable` crash when combined with `as:`
medlefsen May 19, 2026
2e2e717
Rewrite AsyncDataloader to use Queues to communicate task status
rmosolgo May 19, 2026
0f43424
reorder waiting tasks
rmosolgo May 19, 2026
57647a6
Merge pull request #5636 from medlefsen/fix-required-nullable-with-as
rmosolgo May 19, 2026
7546377
Rebuild visibility cache when config is inherited
rmosolgo May 21, 2026
074d274
Fix for Rails tests, remove some dead code
rmosolgo May 21, 2026
4602e4a
Merge pull request #5635 from rmosolgo/visibility-preload-config-fix
rmosolgo May 21, 2026
9f2b693
Execution::Next: bail out when fragment non-null propagation nullifie…
drhops May 21, 2026
a1462bc
Fix test_bubble_through_inline_fragment and test_bubble_through_fragm…
drhops May 21, 2026
28f747b
Execution::Next: fix undefined static_type in field-lookup invariant …
drhops May 21, 2026
af75b52
Merge pull request #5637 from drhops/fix-execution-next-fragment-null…
rmosolgo May 25, 2026
df8ffad
Exec-next: Implement GraphQL::Current.field
rmosolgo May 25, 2026
fb3d9d5
Accept procs for validator configs
rmosolgo May 25, 2026
1761add
Update another spec, add cleanup code
rmosolgo May 25, 2026
a219bc5
Merge pull request #5640 from rmosolgo/exec-next-current-field
rmosolgo May 25, 2026
d7c3928
Document validator procs
rmosolgo May 25, 2026
2b1ecaf
Merge pull request #5641 from rmosolgo/validator-config-procs
rmosolgo May 25, 2026
0aa6dd0
Use crypto.randomUUID for ActionCableLink channelId
obake-fe May 26, 2026
d337b9d
ActionCableLink: accept channelId function
rmosolgo May 26, 2026
d1f8679
Add tests for ESM exports, remove documentation exports
rmosolgo May 26, 2026
415c5fa
Merge pull request #5621 from mattander/add-esm-build-for-js-client
rmosolgo May 26, 2026
59b6fae
Merge pull request #5642 from obake-fe/fix/action-cable-link-channel-…
rmosolgo May 26, 2026
175e9b4
Replace Date.now()... with crypto.randomUUID
rmosolgo May 26, 2026
9d4fc85
Merge pull request #5643 from rmosolgo/js-use-crypto
rmosolgo May 26, 2026
c30dbae
js-1.15.0
rmosolgo May 26, 2026
242ce04
remove prepublish test run
rmosolgo May 26, 2026
3773787
Update tests for exec-next
rmosolgo May 26, 2026
4c32e90
2.6.3
rmosolgo May 26, 2026
881ae28
implement lazy resolve, improve job counting
rmosolgo May 28, 2026
3edd773
properly run snoozed source tasks
rmosolgo May 28, 2026
f0a7ede
Consolidate async queue logic
rmosolgo May 28, 2026
6ba393b
Fall back to getRandomValues when crypto.randomUUID is unavailable
domenicofalco Jun 12, 2026
e1d91fc
Merge pull request #5649 from domenicofalco/fix-randomuuid-insecure-c…
rmosolgo Jun 12, 2026
acbfe02
js-1.15.1
rmosolgo Jun 12, 2026
cb5dba2
Exec-next: fix tracing positional args
rmosolgo Jun 12, 2026
ebeb725
Merge branch 'master' into async-dataloader-deadlock-fix
rmosolgo Jun 12, 2026
3939526
Update snapshots
rmosolgo Jun 12, 2026
ff6e4a0
Merge pull request #5650 from rmosolgo/exec-next-fix-trace-args
rmosolgo Jun 12, 2026
049c931
Fix ActionCable test for Rails head
rmosolgo Jun 12, 2026
b426e8e
Merge pull request #5651 from rmosolgo/fix-action-cable-tests
rmosolgo Jun 12, 2026
ffa4a98
Add Async fiber limit implementation
rmosolgo Jun 17, 2026
6fe7c4f
Clean up FiberCounting test helper
rmosolgo Jun 18, 2026
db2b435
Rename fiber variables
rmosolgo Jun 18, 2026
1de64d5
Update AsyncDataloader spec and snapshots
rmosolgo Jun 18, 2026
31281b4
Merge pull request #5479 from rmosolgo/async-dataloader-deadlock-fix
rmosolgo Jun 18, 2026
10e4d50
2.6.4
rmosolgo Jun 22, 2026
787eb79
Improve result -> error mapping, add eager null propagation termination
rmosolgo Jun 22, 2026
f6f853d
Fix multiple error codepath
rmosolgo Jun 22, 2026
5d02572
Better support for multiple errors, per-query lists of error responses
rmosolgo Jun 22, 2026
c0078bc
Merge finalizers at key
rmosolgo Jun 22, 2026
a73bba5
Update tests for non-null branches with null propagation
rmosolgo Jun 22, 2026
60e7174
Bump actions/checkout from 6 to 7
dependabot[bot] Jun 22, 2026
def44a4
use finalizers instead of error_results
rmosolgo Jun 23, 2026
6481932
Remove top-level abort condition
rmosolgo Jun 23, 2026
21d0728
Don't generate fields for filtered parameters
rmosolgo Jun 23, 2026
763dedf
Merge pull request #5652 from rmosolgo/dependabot/github_actions/acti…
rmosolgo Jun 23, 2026
c9b40a7
Merge pull request #5644 from rmosolgo/exec-next-null-propagation
rmosolgo Jun 23, 2026
5aedb6f
Remove logging, fix setup
rmosolgo Jun 23, 2026
8c0b3f4
Don't reference unavailable constant
rmosolgo Jun 23, 2026
28ea3ec
Merge pull request #5653 from rmosolgo/skip-filtered-parameters
rmosolgo Jun 23, 2026
4763724
pro-1.30.1
rmosolgo Jun 30, 2026
10835b2
Add note about threadsafety when generating schemas, fixes #5657
rmosolgo Jul 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 2 additions & 3 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,11 @@ other applicable versions (`graphql-batch`, etc)

**GraphQL schema**

Include relevant types and fields (in Ruby is best, in GraphQL IDL is ok).
Are you using [interpreter](https://graphql-ruby.org/queries/interpreter.html)? Any custom instrumentation, etc?
Include relevant types and fields (in Ruby is best, in GraphQL IDL is ok). Any custom extensions, etc?

```ruby
class Product < GraphQL::Schema::Object
field :id, ID, null: false, hash_key: :id
field :id, ID, hash_key: :id
# …
end

Expand Down
6 changes: 6 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
47 changes: 0 additions & 47 deletions .github/workflows/apidocs.yaml

This file was deleted.

117 changes: 69 additions & 48 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -1,36 +1,43 @@
name: CI Suite
on:
- push
- pull_request

jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v7
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6
ruby-version: 3.4
bundler-cache: true
- run: bundle exec rake rubocop
- run: npx @herb-tools/linter@0.8.10
system_tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: shogo82148/actions-setup-redis@v1
with:
redis-version: "7.x"
- run: redis-cli ping
- uses: actions/checkout@v7
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6
ruby-version: 3.4
bundler-cache: true
env:
BUNDLE_GEMFILE: ./spec/dummy/Gemfile
- run: bundle exec rails test:system
BUNDLE_GEMS__GRAPHQL__PRO: ${{ secrets.BUNDLE_GEMS__GRAPHQL__PRO }}
BUNDLE_GEMFILE: gemfiles/rails_master.gemfile
- run: bin/rails test:all
working-directory: ./spec/dummy
env:
BUNDLE_GEMS__GRAPHQL__PRO: ${{ secrets.BUNDLE_GEMS__GRAPHQL__PRO }}
BUNDLE_GEMFILE: ../../gemfiles/rails_master.gemfile
# Some coverage goals of these tests:
# - Test once without Rails at all
# - Test postgres, to make sure that the ActiveRecord
# stuff works on that (as well as the default sqlite)
# - Test mongoid -- and several versions, since they're quite different
# - Run the tests with Rails _and_ TESTING_LEGACY=1 to test legacy codepaths
# - Run the JS unit tests once
# - Test each major version of Rails we support
# - Test the min/max minor Ruby version we support (and others?)
Expand All @@ -40,51 +47,62 @@ jobs:
matrix:
include:
- gemfile: Gemfile
ruby: 2.6
- gemfile: gemfiles/rails_3.2.gemfile
ruby: 2.3
bundler: "1"
- gemfile: gemfiles/rails_4.2.gemfile
ruby: 2.4
bundler: "1"
# Rails 5.2 is tested with Postgresql below
- gemfile: gemfiles/rails_6.1.gemfile
ruby: 2.7
- gemfile: gemfiles/rails_master.gemfile
ruby: 3.0
ruby: head
- gemfile: Gemfile
ruby: 2.7 # lowest supported version
- gemfile: gemfiles/rails_8.0.gemfile
ruby: 3.3
graphql_future: 1
- gemfile: gemfiles/rails_8.1.gemfile
ruby: 4.0
graphql_future: 1
redis: 1
- gemfile: gemfiles/rails_master.gemfile
ruby: truffleruby-head
ruby: 3.4
graphql_future: 1
isolation_level_fiber: 1
redis: 1
runs-on: ubuntu-latest
steps:
- run: echo BUNDLE_GEMFILE=${{ matrix.gemfile }} > $GITHUB_ENV
- uses: actions/checkout@v2
- run: echo GRAPHQL_FUTURE=1 > $GITHUB_ENV
if: ${{ !!matrix.graphql_future }}
- run: echo ISOLATION_LEVEL_FIBER=1 > $GITHUB_ENV
if: ${{ !!matrix.isolation_level_fiber }}
- uses: shogo82148/actions-setup-redis@v1
with:
redis-version: "7.x"
if: ${{ !!matrix.redis }}
- run: redis-cli ping
if: ${{ !!matrix.redis }}
- uses: actions/checkout@v7
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
bundler: ${{ matrix.bundler || 'default' }}
- run: bundle exec rake compile
- run: bundle exec rake test
legacy_test:
runs-on: ubuntu-latest
steps:
- run: echo BUNDLE_GEMFILE='gemfiles/rails_6.1.gemfile' > $GITHUB_ENV
- uses: actions/checkout@v2
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7
bundler-cache: true
- run: bundle exec rake test TESTING_LEGACY=1
javascript_test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: ruby/setup-ruby@v1
- uses: actions/checkout@v7
- uses: actions/setup-node@v6
with:
ruby-version: 2.7
bundler-cache: true
- run: bundle exec rake js:all
node-version: latest
- run: npm ci
working-directory: ./javascript_client
- run: npm test
working-directory: ./javascript_client
postgres_test:
runs-on: ubuntu-latest
strategy:
matrix:
include:
- gemfile: gemfiles/rails_master.gemfile
ruby: 3.3
isolation_level_fiber: 1
- gemfile: gemfiles/rails_7.2_postgresql.gemfile
ruby: 3.3
services:
postgres:
image: postgres:latest
Expand All @@ -101,33 +119,36 @@ jobs:
--health-timeout 5s
--health-retries 5
steps:
- run: echo BUNDLE_GEMFILE='gemfiles/rails_5.2_postgresql.gemfile' > $GITHUB_ENV
- run: echo BUNDLE_GEMFILE='' > $GITHUB_ENV
- run: echo DATABASE='POSTGRESQL' > $GITHUB_ENV
- run: echo PGPASSWORD='postgres' > $GITHUB_ENV
- uses: actions/checkout@v2
- run: echo GRAPHQL_CPARSER=1 > $GITHUB_ENV
- run: echo ISOLATION_LEVEL_FIBER=1 > $GITHUB_ENV
if: ${{ !!matrix.isolation_level_fiber }}
- uses: actions/checkout@v7
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7
ruby-version: "3.3"
bundler-cache: true
- run: bundle exec rake test
- run: bundle exec rake compile test
mongodb_test:
strategy:
fail-fast: false
matrix:
gemfile:
- gemfiles/mongoid_6.gemfile
- gemfiles/mongoid_7.gemfile
- gemfiles/mongoid_9.gemfile
- gemfiles/mongoid_8.gemfile
runs-on: ubuntu-latest
services:
mongodb:
image: mongo:3.4.23
image: mongo
ports:
- 27017:27017
steps:
- run: echo BUNDLE_GEMFILE=${{ matrix.gemfile }} > $GITHUB_ENV
- uses: actions/checkout@v2
- uses: actions/checkout@v7
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7
ruby-version: 3.4
bundler-cache: true
- run: bundle exec rake test
- run: bundle exec rake compile test
22 changes: 22 additions & 0 deletions .github/workflows/pronto.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Pronto
on:
- pull_request_target

jobs:
pronto:
runs-on: ubuntu-latest
steps:
- run: echo BUNDLE_GEMFILE=gemfiles/pronto.gemfile > $GITHUB_ENV
- name: Checkout code
uses: actions/checkout@v7
- run: git fetch --no-tags --prune --unshallow origin +refs/heads/*:refs/remotes/origin/*
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.4
bundler-cache: true
- name: Run Pronto
run: bundle exec pronto run -f github_pr -c origin/${{ github.base_ref }}
env:
PRONTO_PULL_REQUEST_ID: ${{ github.event.pull_request.number }}
PRONTO_GITHUB_ACCESS_TOKEN: "${{ github.token }}"
86 changes: 67 additions & 19 deletions .github/workflows/website.yaml
Original file line number Diff line number Diff line change
@@ -1,42 +1,90 @@
name: Publish Website
on:
# For some reason, `on: release: ...` didn't work with `nektos/act`
push:
branches: [master]
# Sequence of patterns matched against refs/tags
tags:
- 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10
workflow_dispatch:
inputs:
publish_website:
description: "Publish guides to website?"
type: boolean
required: true
default: true
publish_version:
description: "If present, pull this GraphQL-Ruby version to rebuild API docs"
required: false
type: string

permissions: {}
jobs:
build:
website:
if: ${{ inputs.publish_website || github.ref_name }}
permissions:
contents: write
name: Publish Website
runs-on: ubuntu-latest
steps:
- name: Checkout master
uses: actions/checkout@v2
uses: actions/checkout@v7
- name: Checkout GitHub pages branch
uses: actions/checkout@v2
uses: actions/checkout@v7
with:
path: gh-pages
ref: gh-pages
- uses: actions/setup-ruby@v1
- uses: ruby/setup-ruby@v1
with:
ruby-version: '2.7'
- name: Bundle install
run: |
gem install bundler
bundle config path vendor/bundle
bundle install --jobs 4 --retry 3
ruby-version: '3.1'
bundler-cache: true
- name: Build HTML, reindex
env:
ALGOLIA_API_KEY: ${{ secrets.ALGOLIA_API_KEY }}
run: |
bundle exec rake site:fetch_latest site:build_doc site:update_search_index site:clean_html site:build_html
- name: Commit changes as last committer
run: |
git config --global user.name "%(git log --format="%aN" -n 1)"
git config --global user.email "%(git log --format="%aE" -n 1)"
git config --global user.name "$(git log --format="%aN" -n 1)"
git config --global user.email "$(git log --format="%aE" -n 1)"
bundle exec rake site:commit_changes
- name: Deploy to GitHub pages via gh-pages branch
uses: s0/git-publish-subdir-action@master
env:
REPO: self
BRANCH: gh-pages
FOLDER: gh-pages
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./gh-pages
api_docs:
needs: website
if: ${{ inputs.publish_version || github.ref_name }}
permissions:
contents: write
name: Publish API Docs
runs-on: ubuntu-latest
steps:
- name: Checkout release tag
uses: actions/checkout@v7
with:
ref: ${{ env.GITHUB_REF }}
- name: Checkout GitHub pages branch
uses: actions/checkout@v7
with:
path: gh-pages
ref: gh-pages
- uses: ruby/setup-ruby@v1
with:
ruby-version: '3.2'
bundler-cache: true
- name: Build API docs
run: |
bundle exec rake site:fetch_latest apidocs:gen_version["${{ inputs.publish_version || env.GITHUB_REF }}"]
- name: Commit changes as rmosolgo
run: |
git config --global user.name rmosolgo
git config --global user.email rdmosolgo@gmail.com
git status
bundle exec rake site:commit_changes
git status
- name: Deploy to GitHub pages via gh-pages branch
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./gh-pages
Loading