ci: add GitHub Actions build workflow - #16
Merged
Merged
Conversation
The fork has had no CI: .travis.yml targets the defunct travis-ci.org with Ruby 2.5-2.7 and rspec-core 3.8/3.9, and its branch filter no longer matches any branch here. Every change has landed unverified. Adds lint plus a 5-leg test matrix. Each leg varies exactly one value from the primary combination (Ruby 3.4, redis-rb 6.0.0, redis 7, rspec-core 3.13.6) so a red leg names its own cause: the Ruby 3.2 floor, redis-rb 5.4.1, redis server 6, and rspec-core 3.12.3. RSPEC_CORE and REDIS_GEM are job-level env so the gemspec pins hold for bundle install and bundle exec alike. build-complete is a single stable check name to wire into branch protection, since matrix leg names embed version strings. Deletes .travis.yml. refs DE-1818 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The fork has never had working CI.
.travis.ymlpoints at the defunct travis-ci.org, pins Ruby 2.5–2.7 and rspec-core 3.8/3.9, and filters onbranches: only: [master, travis]— which doesn't matchmain, so it wouldn't fire even if Travis still existed. Every change to this fork has landed unverified.This adds
build.ymland deletes.travis.yml.The matrix
Five legs. Each varies exactly one value from the primary combination, so a red leg names its own cause rather than requiring a bisect:
>= 5.0, < 7.0)Deliberately not a cross product — that's 5 jobs instead of 24, and every leg earns its place.
Notable choices
RSPEC_CORE/REDIS_GEMare job-levelenv, not step-level. The gemspec reads them whenCIis set, so they must hold for bothbundle installandbundle exec rake. Set on the setup step alone (as upstream does), the gems resolved at install time differ from those loaded at run time.build-completeaggregate gate. Matrix leg names embed version strings, so wiring them individually into branch protection breaks whenever the matrix moves. One stable check name avoids that.bundler-cache. Dependencies vary per leg via env vars, but setup-ruby's cache key wouldn't include them — legs would restore each other's gems. Correctness over a few seconds.fail-fast: false— for a fork tracking upstream, seeing which combinations break in one run is the point.concurrencycancel on PRs only, somainkeeps a complete history.Redis service containers get an explicit
redis-cli pinghealth check so tests can't start against a cold server.refs DE-1818
Test plan
lintandbuild-completeappear and pass on this PRbuild-completeas a required status check (only once it's reported at least once — wiring a never-run check blocks every PR)🤖 Generated with Claude Code