# module Gem::CIDetector

### Constants

ENV_DESCRIPTORS

  For each CI, this env suffices to indicate that we’re on that CI’s containers. (A few of them only supply a CI_NAME variable, which is also nice). And if they set “CI” but we can’t tell which one they are, we also want to know that - a bare “ci” without another token tells us as much.

ENV_INDICATORS

  Any of these being set is a reasonably reliable indicator that we are executing in a CI environment.

### Public Class Methods

ci? ()
Source

    # File lib/rubygems/ci_detector.rb, line 65
    def self.ci?
      ENV_INDICATORS.any? {|var| ENV.include?(var) }
    end

ci_strings ()
Source

    # File lib/rubygems/ci_detector.rb, line 69
    def self.ci_strings
      matching_names = ENV_DESCRIPTORS.select {|env, _| ENV[env] }.values
      matching_names << ENV["CI_NAME"].downcase if ENV["CI_NAME"]
      matching_names.reject(&:empty?).sort.uniq
    end