The English Ruby documentation is automatically generated and updated through a pipeline involving GitHub Actions, AWS S3, and systemd services. Here's how it all comes together:
-
Documentation Generation and Upload
- A scheduled GitHub Action generates the documentation for all actively maintained Ruby versions plus the master branch. Each documentation set is generated using the version of RDoc bundled with that specific Ruby version.
- Example: For Ruby 3.3, the documentation is generated with RDoc 6.6.3.1.
- The generated docs are uploaded as
ruby-docs-en-<version>.tar.xz
to theftp.r-l.o/pub/ruby/doc/
S3 bucket.- You can find these uploads at cache.ruby-lang.org/pub/ruby/doc/, which is powered by cache.r-l.o.
- A scheduled GitHub Action generates the documentation for all actively maintained Ruby versions plus the master branch. Each documentation set is generated using the version of RDoc bundled with that specific Ruby version.
-
Website Update
- On the server running this application, the
update-docs-en.timer
systemd timer triggers therdoc-static-all
service at scheduled intervals.- Timer definition: update-docs-en.timer
- Service definition: rdoc-static-all.service
- The
rdoc-static-all
service runs the rdoc-static-all script.- This script downloads the latest documentation from S3 and updates the website accordingly.
- On the server running this application, the