- Generated RSpec projects no longer include Allure: the
allure-rspecandallure-ruby-commonsgems,helpers/allure_helper.rb, theallure-resultsfolder and.gitignoreentry, and the Allure report and gh-pages steps in the GitHub Actions workflow are gone.raider_reporteris now the only reporter. - Generated Gemfiles now require
raider_reporter~> 0.7, which writes a browsableraider-results/index.htmlnext torun.json;bundle exec raider-reporter reportrebuilds it. - The generated Readme's Reporting section points to the local HTML report; failure screenshots are attached to the report and to Raider.
- The unused
test_helperandvideo_stoptemplates (Allure-only) are removed.
- New
ciparameter:raider new my_project -p framework:rspec automation:selenium ci:azuregenerates anazure-pipelines.ymlfor web projects instead of the GitHub Actions workflow.ci:github(the default) is unchanged; any other value fails withInvalid parameters: ci must be github or azure. - The pipeline runs the suite on
ubuntu-latest, publishesraider-results/as a pipeline artifact and includes araider_commentjob that comments Raider results on pull requests viaraider-reporter comment. It needs theRAIDER_TOKEN(secret) andRAIDER_ENDPOINTpipeline variables and the "Contribute to pull requests" permission for the build service. - Azure Repos ignores
pr:triggers: add the pipeline as a Build validation branch policy so pull request builds and the Raider comment run. - The interactive menu asks "Which CI provider?" (GitHub Actions / Azure Pipelines) for web automations.
- The generated Readme gets an "Azure Pipelines" section when
ci:azureis used. - Mobile projects with
ci:azureget no pipeline file yet;raider newprints a notice. - Generated Gemfiles now require
raider_reporter~> 0.5.
- Generated Cucumber projects now report through
raider_reporter~> 0.4instead of Allure: results are written toraider-results/and uploaded whenRAIDER_TOKENandRAIDER_ENDPOINTare set. The reporter is activated byrequire 'raider_reporter/cucumber'infeatures/support/env.rb. - Cucumber projects no longer include
allure-cucumberorhelpers/allure_helper.rb; failure screenshots are attached to Raider only, and.gitignorelistsraider-resultsinstead ofallure-results. - Generated Cucumber GitHub CI now passes the Raider settings to the test run, uploads
raider-results/as an artifact and includes theraider-commentjob, matching RSpec projects. The Allure report and gh-pages steps are removed for Cucumber. RSpec pipelines are unchanged. - The generated Readme has a "Reporting" section for Cucumber projects too.
- Generated Gemfiles now require
raider_reporter~> 0.4.
- Generated RSpec projects with GitHub CI now include a
raider-commentjob that comments Raider test results on pull requests viaraider-reporter comment. It runs after every test job, only on pull requests, and needs theRAIDER_TOKENsecret andRAIDER_ENDPOINTvariable. Cucumber projects are unchanged. - The job needs
contents: read,pull-requests: writeandstatuses: writepermissions; it reports araider/testsstatus, and pull requests from forks are skipped. - Generated Gemfiles now require
raider_reporter~> 0.3. - Ruby Raider now requires Ruby 3.2.0 or newer.
- Generated RSpec projects now include
raider_reporter: results are written toraider-results/and uploaded whenRAIDER_TOKENandRAIDER_ENDPOINTare set. Allure is still produced. Cucumber projects are unchanged. - Screenshots (Allure too) are now taken only when an example fails, and are attached to both Allure and Raider.
- Generated GitHub CI now runs on push (main, master), pull requests and manual dispatch, passes the Raider settings to RSpec runs and uploads
raider-results/as an artifact. - Fixed the generated Gemfile
ruby_raiderpin so it follows the gem's own major.minor version.
Ruby Raider uses a fully automated release process. You only need to run a single command, and everything else happens automatically via GitHub Actions.
Before releasing, ensure you have:
- ✅ Merged all changes to
masterbranch - ✅ All tests passing locally
- ✅ RuboCop and Reek checks passing
- ✅ GitHub repository configured with secrets:
RUBYGEMS_API_KEY- RubyGems API key for publishing
# For bug fixes (1.1.4 -> 1.1.5)
bin/release patch
# For new features (1.1.4 -> 1.2.0)
bin/release minor
# For breaking changes (1.1.4 -> 2.0.0)
bin/release majorThat's it! Everything else is automated.
The release script will:
- ✅ Verify working directory is clean
- ✅ Confirm you're on master/main branch
- ✅ Run all unit tests
- ✅ Run integration tests
- ✅ Run RuboCop linter
- ✅ Run Reek code smell detector
- ✅ Calculate new version number
- ✅ Ask for confirmation
- ✅ Update
lib/versionfile - ✅ Create git commit with version bump
- ✅ Create git tag (e.g.,
v1.2.0) - ✅ Push commit and tag to GitHub
If any step fails, the release is aborted.
When the tag is pushed, the .github/workflows/release.yml workflow:
Validation Phase:
- ✅ Verifies version in
lib/versionmatches tag - ✅ Runs all tests again (unit + integration)
- ✅ Runs RuboCop
- ✅ Runs Reek
Build Phase:
- ✅ Builds the gem (
ruby_raider-X.Y.Z.gem)
Release Phase:
- ✅ Generates changelog from git commits
- ✅ Creates GitHub Release with:
- Release notes
- Changelog
- Gem file attachment
- ✅ Publishes gem to RubyGems.org
All of this happens automatically within 2-3 minutes.
$ bin/release minor
🧪 Running tests...
......................................
✓ All tests and linters passed
📦 Release Summary
Current version: 1.1.4
New version: 1.2.0
Bump type: minor
This will:
1. Update lib/version to 1.2.0
2. Commit changes
3. Create git tag v1.2.0
4. Push to GitHub (triggers automated release)
5. Publish gem to RubyGems (via GitHub Actions)
6. Create GitHub release with changelog
Proceed with release? [y/N] y
📝 Updating version to 1.2.0...
✓ Updated lib/version
📌 Creating commit and tag...
✓ Created commit and tag v1.2.0
🚀 Pushing to GitHub...
✓ Pushed to GitHub
============================================================
🎉 Release 1.2.0 initiated successfully!
============================================================
The GitHub Actions workflow is now:
1. Running tests
2. Building the gem
3. Publishing to RubyGems
4. Creating GitHub release
Monitor progress at:
https://github.com/RubyRaider/ruby_raider/actions
Release will be available at:
https://github.com/RubyRaider/ruby_raider/releases/tag/v1.2.0
https://rubygems.org/gems/ruby_raider/versions/1.2.0
✨ Thank you for contributing to Ruby Raider!Ruby Raider follows Semantic Versioning:
When: Bug fixes, small improvements, no new features
Examples:
- Fix template rendering bug
- Update documentation
- Performance improvements
- Dependency updates
Command:
bin/release patch # 1.1.4 -> 1.1.5When: New features, backward-compatible changes
Examples:
- Add new framework support
- New template system
- New CLI commands
- Enhanced functionality
Command:
bin/release minor # 1.1.4 -> 1.2.0When: Breaking changes, major refactors
Examples:
- Drop Ruby 2.x support
- Change public API
- Remove deprecated features
- Architectural changes
Command:
bin/release major # 1.1.4 -> 2.0.0Visit: https://github.com/RubyRaider/ruby_raider/actions
You'll see the "Automated Release" workflow running with steps:
- ✅ Checkout code
- ✅ Run tests
- ✅ Build gem
- ✅ Generate changelog
- ✅ Create GitHub Release
- ✅ Publish to RubyGems
Expected duration: 2-3 minutes
Visit: https://github.com/RubyRaider/ruby_raider/releases
You'll see the new release with:
- Version number
- Changelog (auto-generated from commits)
- Gem file download
- Installation instructions
Visit: https://rubygems.org/gems/ruby_raider
The new version will appear within 1-2 minutes of publication.
Solution: Commit or stash your changes first
git status
git add .
git commit -m "Your changes"
# Then try release againSolution: Fix the failing tests before releasing
bundle exec rspec
bundle exec rubocop --auto-correct
bundle exec reekSolution: This means lib/version doesn't match the tag
This should never happen if using bin/release, but if it does:
# Check version
cat lib/version
# Update manually
echo "1.2.0" > lib/version
git add lib/version
git commit -m "Fix version"
git pushSolution: Add the secret in GitHub:
-
Get your RubyGems API key:
curl -u your-rubygems-username https://rubygems.org/api/v1/api_key.yaml
-
Add to GitHub Secrets:
- Go to: https://github.com/RubyRaider/ruby_raider/settings/secrets/actions
- Click "New repository secret"
- Name:
RUBYGEMS_API_KEY - Value: (paste your API key)
- Click "Add secret"
Solution: Check your authentication
# Test push access
git push origin master
# If using HTTPS, you may need a personal access token
# If using SSH, ensure your key is addedIf the automated system fails, you can release manually:
# 1. Update version
echo "1.2.0" > lib/version
# 2. Commit
git add lib/version
git commit -m "Bump version to 1.2.0"
# 3. Create tag
git tag -a v1.2.0 -m "Release version 1.2.0"
# 4. Push
git push origin master
git push origin v1.2.0
# 5. Build gem
gem build ruby_raider.gemspec
# 6. Push to RubyGems
gem push ruby_raider-1.2.0.gem
# 7. Create GitHub Release manually
# Visit: https://github.com/RubyRaider/ruby_raider/releases/newBefore releasing, verify:
- All PRs merged to master
- CHANGELOG or commit messages are clear
- Tests passing locally (
bundle exec rspec) - RuboCop passing (
bundle exec rubocop) - Reek passing (
bundle exec reek) - Version bump type is correct (patch/minor/major)
- GitHub Actions secrets configured (RUBYGEMS_API_KEY)
Then run:
bin/release [patch|minor|major]And monitor at:
After a successful release:
- ✅ Verify gem on RubyGems: https://rubygems.org/gems/ruby_raider
- ✅ Check GitHub Release: https://github.com/RubyRaider/ruby_raider/releases
- ✅ Test installation:
gem install ruby_raider -v 1.2.0 raider --version
- ✅ Announce release (Twitter, Discord, etc.)
- ✅ Update website if needed
- File:
.github/workflows/release.yml - Trigger: Push of tag matching
v*.*.* - Actions: Test → Build → Release → Publish
- File:
bin/release - Usage:
bin/release [major|minor|patch] - Purpose: Local validation and version bumping
- File:
lib/version - Format: Single line with version number (no 'v' prefix)
- Example:
1.2.0
Q: Can I release from a branch? A: The script will warn you. It's recommended to release from master/main only.
Q: Can I skip tests? A: No. Tests are mandatory for releases to ensure quality.
Q: How do I rollback a release? A: You can't unpublish from RubyGems, but you can:
- Yank the version:
gem yank ruby_raider -v X.Y.Z - Release a new patch version with fixes
Q: What if the GitHub Actions workflow fails? A: Check the logs, fix the issue, delete the tag, and try again:
git tag -d v1.2.0
git push origin :refs/tags/v1.2.0
# Fix issue, then re-run bin/releaseQ: How long does a release take? A: ~2-3 minutes from pushing the tag to gem being available on RubyGems.
If you encounter issues with the release process:
- Check the troubleshooting section
- Review GitHub Actions logs
- Open an issue: https://github.com/RubyRaider/ruby_raider/issues
Last Updated: 2026-02-10 Automation Version: 1.0