Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
207 commits
Select commit Hold shift + click to select a range
29fbd34
Spec performance fixes
apiology Jan 15, 2026
70ea4bb
Add rbs collection in undercover run
apiology Jan 16, 2026
8c049fb
Add rbs collection in undercover run
apiology Jan 16, 2026
e428f80
Fix copy-and-paste-o
apiology Jan 16, 2026
ffc25d6
Perform specific caching
apiology Jan 16, 2026
79d9efb
Merge remote-tracking branch 'castwide/v0.59' into speed_up_specs
apiology Jan 16, 2026
f9319c6
Pre-release branch 2026-01-12 (#1152)
apiology Jan 17, 2026
861a899
Ensure api_map catalogs new pins
apiology Jan 28, 2026
9216d73
Avoid cache_doc_map_gems if possible
apiology Jan 28, 2026
7741fca
Avoid load_with_cache if possible
apiology Jan 28, 2026
80e0c94
Avoid load_with_cache if possible
apiology Jan 28, 2026
c0596ad
Use library with fewer dependencies to cache
apiology Jan 28, 2026
55612e7
Simulate yardoc run
apiology Jan 28, 2026
c5d5843
Add bundle cache
apiology Jan 28, 2026
9d725f3
Add empty lines
apiology Jan 28, 2026
a6df0bf
Cache bundles
apiology Jan 28, 2026
f4ad280
Split up regression cases
apiology Jan 28, 2026
98851f4
Run specs in parallel
apiology Jan 29, 2026
5749c42
Add gem
apiology Jan 29, 2026
2888594
Finish Rakefile changes
apiology Jan 29, 2026
afb3fe0
Fix issue revealed by more aggressive setting of DEBUG log level
apiology Jan 29, 2026
310408e
Use valid values for parameters in tests
apiology Jan 29, 2026
750b371
Add missing step in spec
apiology Jan 29, 2026
f8da41c
Add .envrc to set number of parallel jobs
apiology Jan 29, 2026
d4a21e6
Add debug logging
apiology Jan 29, 2026
2e94d97
Merge branch 'better_logging_testing' into parallel_rspec
apiology Jan 29, 2026
70f0c5f
Rely on bundler installed by ruby/setup-ruby
apiology Jan 29, 2026
96ef0c5
Merge branch 'speed_up_specs' into parallel_rspec
apiology Jan 29, 2026
7a05bb2
Swap to name that prspec triggers on
apiology Jan 29, 2026
c26e6d6
Set PARALLEL throughout based on number of physical cores
apiology Jan 29, 2026
f2b16af
Debug
apiology Jan 29, 2026
0adb139
Bump prspec version
apiology Jan 29, 2026
13eda65
Flag individual sub-contexts for parallel_rspec
apiology Jan 29, 2026
a1629b5
Try ApiMap.new
apiology Jan 29, 2026
e46e6b3
More prspec updates
apiology Jan 29, 2026
dba7d29
Fix nil violation found in tests
apiology Jan 29, 2026
8a4d722
Debug
apiology Jan 29, 2026
f8260b4
Another nil fix
apiology Jan 29, 2026
2dabf64
Avoid direct reference to current directory
apiology Jan 29, 2026
4949ce1
Drop @sg-ignore
apiology Jan 29, 2026
51f34ce
Add PROJECT_DIRECTORY to avoid chdir issues
apiology Jan 29, 2026
dee9fb6
Try using main api_map
apiology Jan 29, 2026
d671728
Try excluding
apiology Jan 29, 2026
0b8bbce
Use bundler cache more
apiology Jan 29, 2026
cb976e2
Include psych in compilation
apiology Jan 29, 2026
9c92f57
Fix nil gemspecs list
apiology Jan 29, 2026
d39049e
Debug
apiology Jan 29, 2026
8dc1f38
Debug
apiology Jan 30, 2026
cf3dfb3
Debug
apiology Jan 30, 2026
d67378e
Mark fixed
apiology Jan 30, 2026
7edf8b8
More things run serially
apiology Jan 30, 2026
1965e63
More things run serially
apiology Jan 30, 2026
0cdb4ef
Fix typo
apiology Jan 30, 2026
0eaf53d
Deal with another filesystem conflict
apiology Jan 30, 2026
12b2f30
Deal with another filesystem conflict
apiology Jan 30, 2026
1c5c969
Set spec timeout
apiology Jan 30, 2026
bcbf9a9
Avoid race conditions caching/uncaching backport
apiology Jan 31, 2026
936d3b4
Remove lint issue, reduce race condition
apiology Jan 31, 2026
59a0bd6
Don't use same filename in multiple parallel specs
apiology Jan 31, 2026
38d4a96
Merge branch 'repro_rbs' into parallel_rspec
apiology Jan 31, 2026
535f21d
Apply suggestion from @apiology
apiology Jan 31, 2026
1818382
rubocop -a
apiology Jan 31, 2026
9adce4c
rubocop -A
apiology Jan 31, 2026
07a8940
Merge branch '2026-01-27' into parallel_rspec
apiology Jan 31, 2026
d3cc536
Fix rubocop todo issues
apiology Jan 31, 2026
6dc4f94
Debug
apiology Jan 31, 2026
99f55d3
Revert some changes
apiology Jan 31, 2026
ee07001
Overwrite api_map in context
apiology Jan 31, 2026
99c8241
Try another caching approach
apiology Jan 31, 2026
5a86947
Try another caching approach
apiology Jan 31, 2026
9eb3a6a
Fix merge issue
apiology Jan 31, 2026
74c7970
Add before :context
apiology Jan 31, 2026
c6702c9
More after :context
apiology Jan 31, 2026
6bc40d6
Add more before :contexts
apiology Feb 1, 2026
96daa5d
Fix merge issue
apiology Feb 1, 2026
e8a33a5
Fix merge
apiology Feb 1, 2026
6ba49d0
Fix merge
apiology Feb 1, 2026
4568e8d
Log gem caching to $stderr to help see where test time is going
apiology Feb 1, 2026
00c19e3
Add another before :context
apiology Feb 1, 2026
cbc9d09
Fix expectation
apiology Feb 1, 2026
b5ae43f
Stop bundle installing with every example in shell_spec
apiology Feb 1, 2026
94f1229
Move function
apiology Feb 1, 2026
9138a73
Debug
apiology Feb 1, 2026
75fd252
Simplify version spec
apiology Feb 1, 2026
056c3ca
Debug
apiology Feb 1, 2026
d866dc0
Debug
apiology Feb 1, 2026
203a4f8
Debug
apiology Feb 1, 2026
854e916
Debug
apiology Feb 1, 2026
4ae10a5
Debug
apiology Feb 1, 2026
3014abe
Debug
apiology Feb 1, 2026
c0c340e
Speed up bundle install
apiology Feb 1, 2026
c210441
Debug
apiology Feb 1, 2026
83d8da9
Debug
apiology Feb 1, 2026
819bf43
Debug
apiology Feb 1, 2026
8a220c4
Debug Gemfile.lock
apiology Feb 1, 2026
547276b
Debug slowness
apiology Feb 1, 2026
27a171c
Bump time limit
apiology Feb 1, 2026
3dd98b0
Debug
apiology Feb 1, 2026
be64b85
Debug
apiology Feb 1, 2026
83ce3d3
Debug
apiology Feb 1, 2026
6c80bae
Debug
apiology Feb 1, 2026
07db6a3
Debug
apiology Feb 1, 2026
b6ee022
Debug
apiology Feb 1, 2026
ea94901
Debug
apiology Feb 1, 2026
a6a4678
Debug
apiology Feb 1, 2026
a61c785
Fix
apiology Feb 1, 2026
1be808f
Debug
apiology Feb 1, 2026
215c23e
Use default config if none provided for require paths
apiology Feb 1, 2026
3b4f3d2
Fix incorrect spec config
apiology Feb 1, 2026
525c1b3
Debug
apiology Feb 1, 2026
e912db6
Debug
apiology Feb 1, 2026
56bb7c5
Debug
apiology Feb 1, 2026
40fe7fd
Debug
apiology Feb 1, 2026
102d357
Revert debugging
apiology Feb 1, 2026
8089dd5
Another before :context case
apiology Feb 1, 2026
a5e2bde
Avoid actually uncaching things if not needed
apiology Feb 1, 2026
a4dfc52
Debug
apiology Feb 1, 2026
a07be09
Move to PARALLEL=3
apiology Feb 1, 2026
9953848
Move to WORKERS=3
apiology Feb 1, 2026
2291d71
Try 2 workers
apiology Feb 1, 2026
1b0ad59
Try 1 worker
apiology Feb 1, 2026
6a6efe1
Set WORKERS=5
apiology Feb 1, 2026
6943b50
Set WORKERS=6
apiology Feb 1, 2026
2adc097
Try 7 workers
apiology Feb 1, 2026
b6d8eb6
Disable coverage checking
apiology Feb 1, 2026
474a29f
7 workers
apiology Feb 1, 2026
0e885ff
Avoid uncaching core
apiology Feb 1, 2026
642edef
8 workers
apiology Feb 1, 2026
9a863a3
Drop simplecov
apiology Feb 1, 2026
a6926e6
1 worker
apiology Feb 2, 2026
fd86a5e
4 workers
apiology Feb 2, 2026
da9e506
Debug
apiology Feb 2, 2026
a64e773
Debug
apiology Feb 2, 2026
be93692
Debug
apiology Feb 2, 2026
a82b6fd
Reduce background syncs
apiology Feb 2, 2026
cc37729
Try again
apiology Feb 2, 2026
fd69799
Run specs in unbundled env
apiology Feb 2, 2026
b2d8fb6
Try again
apiology Feb 2, 2026
38a93e2
Debug
apiology Feb 2, 2026
fc6e874
Try again
apiology Feb 2, 2026
849747e
Debug
apiology Feb 2, 2026
1669309
Debug
apiology Feb 2, 2026
5e72ef4
Debug
apiology Feb 2, 2026
de8d4ac
Drop dead before block
apiology Feb 6, 2026
9f7cd02
Fix expectations in now-working spec
apiology Feb 6, 2026
d801cf1
Fix only-failures issues
apiology Feb 6, 2026
7704c91
Switch to gem with fewer depenencies to speed up spec
apiology Feb 6, 2026
8fee670
Update expectations in other specs
apiology Feb 6, 2026
0fa1c00
Debug
apiology Feb 6, 2026
68cf467
Debug
apiology Feb 6, 2026
3e3be1a
Add caching of default gems
apiology Feb 6, 2026
c4c1e8f
Revert
apiology Feb 6, 2026
96482b8
Avoid unneeded gem caching for perf
apiology Feb 6, 2026
b4556c0
Debug
apiology Feb 6, 2026
5c235dc
Debug
apiology Feb 6, 2026
df0c205
Debug
apiology Feb 6, 2026
b34c3d0
Debug
apiology Feb 6, 2026
eb79d3b
Debug
apiology Feb 6, 2026
e981123
Debug
apiology Feb 6, 2026
31648e3
Debug
apiology Feb 6, 2026
a55b54a
Debug
apiology Feb 6, 2026
0e08bf8
Debug
apiology Feb 6, 2026
2af160d
Debug
apiology Feb 6, 2026
53676c5
Drop extra /
apiology Feb 6, 2026
59b460d
Debug
apiology Feb 6, 2026
b5bcd4b
Debug
apiology Feb 6, 2026
dda8322
Debug
apiology Feb 6, 2026
a82ab1a
Debug
apiology Feb 6, 2026
f7b84a1
Debug
apiology Feb 6, 2026
c5d86e3
Debug
apiology Feb 6, 2026
25d01ef
Debug
apiology Feb 6, 2026
73de5c5
Drop workers experimentation
apiology Feb 6, 2026
25457a8
Consistency fixes
apiology Feb 6, 2026
3e85551
Drop @param
apiology Feb 6, 2026
d10e029
Docs
apiology Feb 6, 2026
a4bd2bd
Drop debugging
apiology Feb 6, 2026
16fb502
Drop debugging
apiology Feb 6, 2026
d707e04
Revert debugging
apiology Feb 6, 2026
b8b18c4
Drop unneeded Config.new
apiology Feb 6, 2026
aa8979c
Revert updates
apiology Feb 6, 2026
fefdeba
Fix annotation
apiology Feb 6, 2026
792e857
Revert
apiology Feb 6, 2026
23ccc34
Fix log message
apiology Feb 6, 2026
6e06cd2
Cache workspace gems in parallel
apiology Feb 7, 2026
a1aeac2
Cache workspace gems in parallel
apiology Feb 7, 2026
81b3ae0
Cache docmap gems in parallel
apiology Feb 7, 2026
91b8852
Add --workspace flag, default to docmap caching
apiology Feb 7, 2026
013deaf
Fix API break
apiology Feb 7, 2026
98953f7
Fix nil issue
apiology Feb 7, 2026
e0b28e0
Fix spec
apiology Feb 7, 2026
c6d7ea9
Cache more up front in rspec_specs
apiology Feb 7, 2026
1f599e9
Drop unneeded nil case
apiology Feb 7, 2026
17d3a2b
Avoid chdir issues
apiology Feb 7, 2026
093bd2a
Cache more gems
apiology Feb 7, 2026
48b4540
Cache more gems
apiology Feb 7, 2026
b1bdc91
Add speedups
apiology Feb 7, 2026
a4341d1
Speed up gem caching
apiology Feb 7, 2026
5283a52
Spec perf fixes
apiology Feb 7, 2026
cb06aea
Fix expectations
apiology Feb 7, 2026
a5d028d
Speed up
apiology Feb 7, 2026
5cd2d83
Try empty dir load
apiology Feb 7, 2026
07acb5c
Precache less in spec
apiology Feb 7, 2026
1e3f1a4
Fix precache
apiology Feb 7, 2026
30812e7
Speed up specs
apiology Feb 7, 2026
7246007
?
apiology Feb 7, 2026
940fc3f
Simplify spec
apiology Feb 7, 2026
055281f
Run specs in order
apiology Feb 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .envrc
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
#!/bin/bash

if [[ "$(uname)" == "Darwin" ]]; then
WORKERS=$(sysctl -n hw.physicalcpu)
export WORKERS
fi

# current git branch
SOLARGRAPH_FORCE_VERSION=0.0.1.dev-$(git rev-parse --abbrev-ref HEAD | tr -d '\n' | tr -d '/' | tr -d '-'| tr -d '_')
export SOLARGRAPH_FORCE_VERSION
4 changes: 2 additions & 2 deletions .github/workflows/linting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ jobs:
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.4
bundler-cache: false
bundler-cache: true

- name: Install gems
run: bundle install
Expand All @@ -103,7 +103,7 @@ jobs:
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.4
bundler-cache: false
bundler-cache: true
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a pretty big speedup. If having the very latest version of a dependency is vital, we can add a bundle update statement later on.


- name: Install gems
run: bundle install
Expand Down
204 changes: 176 additions & 28 deletions .github/workflows/plugins.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ permissions:
contents: read

jobs:
regression:
rails_and_rspec_typechecking:
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm breaking these steps into parallel items for time savings and also clearing up the names a bit

runs-on: ubuntu-latest

steps:
Expand Down Expand Up @@ -44,9 +44,52 @@ jobs:
run: bundle exec rbs collection update
- name: Ensure typechecking still works
run: bundle exec solargraph typecheck --level strong
rails_and_rspec_specs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.4
bundler-cache: true
- uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: yq
version: 1.0
- name: Install gems
run: |
echo 'gem "solargraph-rails"' > .Gemfile
echo 'gem "solargraph-rspec"' >> .Gemfile
bundle install
bundle update --pre rbs
- name: Configure to use plugins
run: |
bundle exec solargraph config
yq -yi '.plugins += ["solargraph-rails"]' .solargraph.yml
yq -yi '.plugins += ["solargraph-rspec"]' .solargraph.yml
- name: Install gem types
run: |
bundle exec rbs collection update
# avoid trying to do this in parallel during the specs
time bundle exec solargraph gems core stdlib default
- name: Ensure specs still run
run: bundle exec rake spec
rails:
run: |
# Speed up some of the bundle installs we run inside the tests
# as well when we're testing different solargraph usage
# scenarios. This is already set in the local bundle config by
# the setup-ruby action.
#
# See
# https://github.com/ruby/setup-ruby?tab=readme-ov-file#caching-bundle-install-automatically
bundle config path $PWD/vendor/bundle
WORKERS=$(nproc --all)
export WORKERS
SIMPLECOV_DISABLED=true
export SIMPLECOV_DISABLED
bundle exec prspec spec/
rails_typechecking:
runs-on: ubuntu-latest

steps:
Expand All @@ -57,7 +100,7 @@ jobs:
ruby-version: 3.4 # keep same as typecheck.yml
# See https://github.com/castwide/solargraph/actions/runs/19000135777/job/54265647107?pr=1119
rubygems: latest
bundler-cache: false
bundler-cache: true
- uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: yq
Expand All @@ -75,9 +118,49 @@ jobs:
run: bundle exec rbs collection update
- name: Ensure typechecking still works
run: bundle exec solargraph typecheck --level strong
rails_specs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.4
rubygems: latest
bundler-cache: true
- uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: yq
version: 1.0
- name: Install gems
run: |
echo 'gem "solargraph-rails"' > .Gemfile
bundle install
bundle update --pre rbs
- name: Configure to use plugins
run: |
bundle exec solargraph config
yq -yi '.plugins += ["solargraph-rails"]' .solargraph.yml
- name: Install gem types
run: |
bundle exec rbs collection update
# avoid trying to do this in parallel during the specs
bundle exec solargraph gems core stdlib
- name: Ensure specs still run
run: bundle exec rake spec
rspec:
run: |
# Speed up some of the bundle installs we run inside the tests
# as well when we're testing different solargraph usage
# scenarios. This is already set in the local bundle config by
# the setup-ruby action.
#
# See
# https://github.com/ruby/setup-ruby?tab=readme-ov-file#caching-bundle-install-automatically
bundle config path $PWD/vendor/bundle
WORKERS=$(nproc --all)
export WORKERS
bundle exec rake full_spec
rspec_typechecking:
runs-on: ubuntu-latest

steps:
Expand All @@ -86,7 +169,7 @@ jobs:
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.4 # keep same as typecheck.yml
bundler-cache: false
bundler-cache: true
- uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: yq
Expand All @@ -104,9 +187,52 @@ jobs:
run: bundle exec rbs collection update
- name: Ensure typechecking still works
run: bundle exec solargraph typecheck --level strong
rspec_specs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.4 # keep same as typecheck.yml
bundler-cache: true
- uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: yq
version: 1.0
- name: Install gems
run: |
echo 'gem "solargraph-rspec"' >> .Gemfile
bundle install
bundle update --pre rbs
- name: Configure to use plugins
run: |
bundle exec solargraph config
yq -yi '.plugins += ["solargraph-rspec"]' .solargraph.yml
- name: Install gem types
run: |
set -x

bundle exec rbs collection update

rspec_gems=$(bundle exec ruby -r 'solargraph-rspec' -e 'puts Solargraph::Rspec::Gems.gem_names.join(" ")' 2>/dev/null | tail -n1)
# avoid trying to do this in parallel during the specs
bundle exec solargraph gems core stdlib $rspec_gems diff-lcs addressable ast rexml crack hashdiff rspec-support bigdecimal public_suffix
- name: Ensure specs still run
run: bundle exec rake spec
run: |
# Speed up some of the bundle installs we run inside the tests
# as well when we're testing different solargraph usage
# scenarios. This is already set in the local bundle config by
# the setup-ruby action.
#
# See
# https://github.com/ruby/setup-ruby?tab=readme-ov-file#caching-bundle-install-automatically
bundle config path $PWD/vendor/bundle
WORKERS=$(nproc --all)
export WORKERS

bundle exec rake full_spec
run_solargraph_rspec_specs:
# check out solargraph-rspec as well as this project, and point the former to use the latter as a local gem
runs-on: ubuntu-latest
Expand All @@ -129,7 +255,7 @@ jobs:
with:
ruby-version: 3.4
rubygems: latest
bundler-cache: false
bundler-cache: true
- name: Install gems
run: |
set -x
Expand Down Expand Up @@ -166,7 +292,20 @@ jobs:
bundle exec appraisal solargraph gems $rspec_gems
- name: Run specs
run: |
# Speed up some of the bundle installs we run inside the tests
# as well when we're testing different solargraph usage
# scenarios. This is already set in the local bundle config by
# the setup-ruby action.
#
# See
# https://github.com/ruby/setup-ruby?tab=readme-ov-file#caching-bundle-install-automatically
bundle config path $PWD/vendor/bundle
cd ../solargraph-rspec
WORKERS=$(nproc --all)
export WORKERS

# avoid trying to do this in parallel during the specs
bundle exec solargraph gems core stdlib
bundle exec appraisal rspec --format progress

run_solargraph_rails_specs:
Expand All @@ -184,42 +323,51 @@ jobs:
with:
# solargraph-rails supports Ruby 3.0+
ruby-version: '3.0'
bundler-cache: false
bundler-cache: true
# https://github.com/apiology/solargraph/actions/runs/19400815835/job/55508092473?pr=17
rubygems: latest
bundler: latest
env:
MATRIX_RAILS_VERSION: "7.0"
- name: Install gems
run: |
set -x
BUNDLE_PATH="${GITHUB_WORKSPACE:?}/vendor/bundle"
export BUNDLE_PATH
cd ../solargraph-rails
echo "gem 'solargraph', path: '${GITHUB_WORKSPACE:?}'" >> Gemfile
bundle install
bundle update --pre rbs
RAILS_DIR="$(pwd)/spec/rails7"
export RAILS_DIR
cd ${RAILS_DIR}
bundle install
bundle exec --gemfile ../../Gemfile rbs --version
bundle exec --gemfile ../../Gemfile rbs collection install
cd ../../
# bundle exec rbs collection init
# bundle exec rbs collection install
set -x
# Share caches to speed up bundle install
#
# See
# https://github.com/ruby/setup-ruby?tab=readme-ov-file#caching-bundle-install-automatically
cd ../solargraph-rails
echo "gem 'solargraph', path: '${GITHUB_WORKSPACE:?}'" >> Gemfile
bundle install
bundle update --pre rbs
RAILS_DIR="$(pwd)/spec/rails7"
export RAILS_DIR
cd ${RAILS_DIR}
bundle install
bundle exec --gemfile ../../Gemfile rbs --version
bundle exec --gemfile ../../Gemfile rbs collection install
cd ../../
# bundle exec rbs collection init
# bundle exec rbs collection install
env:
MATRIX_RAILS_VERSION: "7.0"
MATRIX_RAILS_MAJOR_VERSION: '7'
- name: Run specs
run: |
BUNDLE_PATH="${GITHUB_WORKSPACE:?}/vendor/bundle"
export BUNDLE_PATH
# Share caches to speed up bundle install
#
# See
# https://github.com/ruby/setup-ruby?tab=readme-ov-file#caching-bundle-install-automatically
bundle config path $PWD/vendor/bundle
cd ../solargraph-rails
bundle exec solargraph --version
bundle info solargraph
bundle info rbs
bundle info yard
WORKERS=$(nproc --all)
export WORKERS
# avoid trying to do this in parallel during the specs
bundle exec solargraph gems core stdlib
ALLOW_IMPROVEMENTS=true bundle exec rake spec
env:
MATRIX_RAILS_VERSION: "7.0"
48 changes: 43 additions & 5 deletions .github/workflows/rspec.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,24 @@ jobs:
run: |
bundle update rbs # use latest available for this Ruby version
- name: Update types
run: bundle exec rbs collection update
run: |
bundle exec rbs collection update
# avoid trying to do this in parallel during the specs
bundle exec solargraph gems core stdlib
- name: Run tests
run: bundle exec rake spec
run: |
# Speed up some of the bundle installs we run inside the tests
# as well when we're testing different solargraph usage
# scenarios. This is already set in the local bundle config by
# the setup-ruby action.
#
# See
# https://github.com/ruby/setup-ruby?tab=readme-ov-file#caching-bundle-install-automatically
bundle config path $PWD/vendor/bundle
WORKERS=$(nproc --all)
export WORKERS

bundle exec rake full_spec
undercover:
runs-on: ubuntu-latest
steps:
Expand All @@ -99,10 +114,33 @@ jobs:
with:
ruby-version: '3.4'
bundler-cache: true
- name: Update gems
run: |
bundle update rbs # use latest available for this Ruby version
- name: Update types
run: bundle exec rbs collection update
run: |
bundle exec rbs collection update
# avoid trying to do this in parallel during the specs
bundle exec solargraph gems core stdlib
- name: Run tests
run: bundle exec rake spec
run: |
WORKERS=$(nproc --all)
export WORKERS

bundle exec rake full_spec
- name: Check PR coverage
run: bundle exec rake undercover
run: |
# Speed up some of the bundle installs we run inside the tests
# as well when we're testing different solargraph usage
# scenarios. This is already set in the local bundle config by
# the setup-ruby action.
#
# See
# https://github.com/ruby/setup-ruby?tab=readme-ov-file#caching-bundle-install-automatically
bundle config path $PWD/vendor/bundle
WORKERS=$(nproc --all)
export WORKERS
# avoid trying to do this in parallel during the specs
bundle exec solargraph gems core stdlib
bundle exec rake undercover
continue-on-error: true
2 changes: 1 addition & 1 deletion .github/workflows/typecheck.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.4
bundler-cache: false
bundler-cache: true
- name: Install gems
run: |
bundle install
Expand Down
Loading
Loading