Skip to content
Jun Aruga edited this page Mar 4, 2024 · 25 revisions

GitHub Actions

https://github.com/ruby/ruby/actions

  • Executed for each commit and pull request

Appveyor

CI for Windows

https://ci.appveyor.com/project/ruby/ruby

  • Executed for each commit and pull request

Travis CI

CI for non-x86 CPU architectures

We only manage non-x86_64 free pipelines.

https://www.travis-ci.com/github/ruby/ruby

  • Executed for each commit and pull request

How to react for Travis CI issues

Infra issue

If you see Travis CI infra issues, please consider the following options.

  • Check Travis CI Status page https://www.traviscistatus.com/.
  • Contact Jun Aruga via ruby-lang Slack or e-mail jaruga _AT_ ruby-lang.org.
  • Contact Travis support via e-mail support _AT_ travis-ci.com or https://support.travis-ci.com/. This is the most reliable way to fix the issues. Travis support responses quickly.
  • Add the unstable job name to the matrix - allow_failures. Ideally we want to remove the job name from the allow_failures to avoid unintentional new test failures.
  • Drop the unstable job name in the matrix - include, commenting it out.

Test failures

The Travis arm32/ppc64le/s390x cases are aligned with RubyCI's Ubuntu arm64-neoverse/ppc64le/s390x servers. Try to reproduce on the servers. The make -jN used in Travis may cause Travis specific failures as make -jN is not used in RubyCI.

If you see Travis CI test failures, please consider the following options.

  • Fix the issue.
  • Add pend for the failing test using test-unit as a workaround to avoid the new failures unintentionally are injected.
    • Pend by RUBY_PLATFORM =~ /<platform_keyowrd>/. See this example.
    • Pend by Travis environment variables ENV['TRAVIS'] and ENV['TRAVIS_CPU_ARCH'].
      if ENV['TRAVIS'] && ENV['TRAVIS_CPU_ARCH'] == 'ppc64le' # arm64/ppc64le/s390x
        pend('something')
      end
      
  • Add the unstable job name to the matrix - allow_failures.

Log of credits

We need to ask Travis CI support to add the credits regularly to run Travis CI. Below are the history.

  • 2023/11/10: Remaining credits: 19440 after running 3 jobs around for 4 months. That means we used around 463 credits per month per job.
  • 2023/05/22: 25K credits were added.

Cirrus CI

CI for Arm CPU architectures.

Removed due to inconsistent infra issues. We use GitHub Actions yjit-macos.yml for Arm64 cases.

https://cirrus-ci.com/github/ruby/ruby/master

  • Executed for each commit and pull request

Launchable CI

A test failure analysis tool triggered by pull-requests and pushes.

How to create your account to run Launchable on your forked repository

  1. Click "Sign up/ Sign in" link at the left bottom on the Launchable organization: ruby, workspace: ruby page.
  2. Click "Sign up" link on the "Log in to Launchable" page.
  3. Set your ID (email address) and password.
  4. You receive an email from Launchable.
  5. Set your organization as the same name with your account name on GitHub.
  6. Set your workspace as the same name with the repository name such as "ruby" (for ruby/ruby), or "debug" (for ruby/debug).
  7. Create your API key by clicking "Create your API key" button on the workspace setting page: https://app.launchableinc.com/organizations/your_organization/your_workspace/ruby/settings.
  8. Copy and paste the API key into your GitHub settings - Secrets and variables - Repository secrets - Name: LAUNCHABLE_TOKEN, Scret: the API key value.

References

Ruby CI

This is a curation site of test results of chkbuild (Ruby's own CI program).

https://rubyci.org/

Most CI servers run on AWS, and are maintained by (mainly) @hsbt and @mame

You can check How To Maintain RubyCI Servers to know how to setup the servers.

ci.rvm.jp

This is yet another CI service to aim to produce the test result as quickly as possible, maintained by @ko1

http://ci.rvm.jp/latest

Clone this wiki locally