chore(ci): Migrate from Travis to GH actions#367
chore(ci): Migrate from Travis to GH actions#367dividedmind wants to merge 10 commits intomasterfrom
Conversation
There was a problem hiding this comment.
Pull request overview
Migrates the project’s CI pipeline from Travis CI to GitHub Actions, updating release/token handling and documentation accordingly.
Changes:
- Remove legacy Travis CI configuration.
- Add GitHub Actions workflow to run the Ruby test matrix and perform releases on
master. - Update release wrapper and CI documentation to use GitHub Actions environment variables and releasebot + RubyGems trusted publishing.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
release.sh |
Switches repo detection from TRAVIS_REPO_SLUG to GITHUB_REPOSITORY for semantic-release. |
README_CI.md |
Documents new release credentials flow (GitHub App token + RubyGems OIDC) and updates env var name. |
README.md |
Replaces Travis build badge with GitHub Actions badge. |
.travis.yml |
Removes Travis CI configuration. |
.github/workflows/ci.yml |
Introduces GitHub Actions workflow for tests + release job. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
e909040 to
1301566
Compare
7aeec63 to
e1a29ab
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 16 out of 16 changed files in this pull request and generated 6 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
43b50c7 to
5ded38c
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 15 out of 15 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Set up GitHub Actions CI workflow, replacing Travis CI; - upgrade Postgres service to 16 (14 reaches EOL Nov 2026); - cache yarn dependencies with actions/setup-node.
Pin concurrent-ruby to 1.3.4 to avoid uninitialized constant ActiveSupport::LoggerThreadSafeLevel::Logger; add mutex_m as an explicit dependency.
Bind the WEBrick server to 127.0.0.1 to avoid dual-stack port conflicts; replace fixed sleep(1.0) with a spin-wait loop that unblocks as soon as the port is assigned.
Fall back to Gem::Specification.find_by_name so gems that are installed but not yet loaded are still detected correctly.
- Replace Bundler.with_clean_env with with_unbundled_env; - prepend the rbenv ruby bin dir to PATH so the right Ruby is used; - clear APPMAP_INITIALIZE so it does not leak into fixture app subprocesses.
Use transactional fixtures for ActiveRecord and DatabaseCleaner truncation strategy for Sequel, since Sequel doesn't participate in AR's transaction rollback. Also, reset the database between runs with different ORMs for extra test isolation.
Accept either SELECT * or SELECT "users".* via regex. Different ActiveRecord versions use different queries here.
rdoc is not a system library anymore. Loading the MarkdownDescriptions module could now error out in environments not including this module even if the code is unused and unneeded. This change makes it load on demand, only failing with module not found when relevant.
5ded38c to
f64d495
Compare
Travis hasn't worked for a while. This pull request migrates CI to GitHub actions.
For release it uses releasebot app to obtain GH token for release and commit, and uses trusted publishing for rubygems.
While working on this I discovered a bunch of failing tests, and so implemented fixes.