This repository hosts GitHub Actions workflows that automate CRuby's release engineering, daily snapshot builds, documentation generation, and CI infrastructure.
For release managers, see https://bugs.ruby-lang.org/projects/ruby/wiki/HowToReleaseJa.
| Workflow | Schedule | Description |
|---|---|---|
snapshot-master |
Daily 18:30 UTC | Build a snapshot tarball from the master branch, run tests on Ubuntu/macOS/Windows, and upload to S3 |
snapshot-ruby_X_Y |
Daily 18:30 UTC | Same as above, but for each maintenance branch (ruby_3_3, ruby_3_4, ruby_4_0) |
draft-release |
On draft/v* tag push |
Create a draft release package, run multi-platform tests, upload to S3, and open a release PR on ruby/www.ruby-lang.org |
Remove pub/tmp/ruby-* |
Manual | Remove temporary draft release packages from S3 and purge CDN caches |
coverage |
Every 3 hours | Run the test suite with gcov coverage and upload reports to S3 |
Make HTML for docs.r-l.o/en/ |
Daily 13:00 UTC | Build HTML documentation for each Ruby version and upload to S3 |
doxygen |
Every 3 hours | Generate C API documentation with Doxygen and upload to S3 |
Update bundled_gems |
Daily 15:07 UTC | Check for bundled gem updates in ruby/ruby |
ruby_versions |
Reusable workflow | Generate a matrix of Ruby versions for use in other workflows |
update_ci_versions |
Daily 16:27 UTC | Update CI version configuration |
update_index |
Hourly | Update the release index |
All snapshot and draft-release workflows also support repository_dispatch and workflow_dispatch triggers for manual execution.
- Open the workflow page, e.g. https://github.com/ruby/actions/actions/workflows/snapshot-master.yml or
snapshot-ruby_X_Y - Click Run workflow (next to "This workflow has a workflow_dispatch event trigger.")
- Leave "Use workflow from" as
master— this refers to the ruby/actions branch, not ruby/ruby - Enter a diff URL in Patch URL (e.g.
https://patch-diff.githubusercontent.com/raw/ruby/ruby/pull/4369.diff). The workflow downloads it and applies it withgit apply - Click Run workflow
- Open https://github.com/ruby/actions/actions/workflows/draft-release.yml
- Click Run workflow
- Enter the target version (e.g.
3.4.0-rc1) in Target version - Click Run workflow
- Open https://github.com/ruby/actions/actions/workflows/remove-tmp-package.yml
- Click Run workflow
- Enter the version to remove (e.g.
3.4.0-rc1-draft) in Target version - Click Run workflow