Merge pull request #11578 from jasonrudolph/flaky-test-detection
Automatically detect and track flaky tests
This commit is contained in:
		
						commit
						41803ebf93
					
				
							
								
								
									
										11
									
								
								.github/workflows/tests.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								.github/workflows/tests.yml
									
									
									
									
										vendored
									
									
								
							@ -320,3 +320,14 @@ jobs:
 | 
			
		||||
      - run: brew test-bot --only-formulae --test-default-formula
 | 
			
		||||
 | 
			
		||||
      - uses: codecov/codecov-action@29386c70ef20e286228c72b668a06fd0e8399192
 | 
			
		||||
 | 
			
		||||
      - name: Upload test results to BuildPulse for flaky test detection
 | 
			
		||||
        # Only run this step for PRs where where we have access to secrets.
 | 
			
		||||
        # Run this step even when the tests fail. Skip if the workflow is cancelled.
 | 
			
		||||
        if: github.event.pull_request.head.repo.full_name == github.repository && !cancelled()
 | 
			
		||||
        env:
 | 
			
		||||
          BUILDPULSE_ACCESS_KEY_ID: ${{ secrets.BUILDPULSE_ACCESS_KEY_ID }}
 | 
			
		||||
          BUILDPULSE_SECRET_ACCESS_KEY: ${{ secrets.BUILDPULSE_SECRET_ACCESS_KEY }}
 | 
			
		||||
        run: |
 | 
			
		||||
          brew install buildpulse-test-reporter
 | 
			
		||||
          buildpulse-test-reporter submit Library/Homebrew/test/junit --account-id 1503512 --repository-id 53238813
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@ -14,6 +14,7 @@
 | 
			
		||||
/Library/Homebrew/test/.gem
 | 
			
		||||
/Library/Homebrew/test/.subversion
 | 
			
		||||
/Library/Homebrew/test/coverage
 | 
			
		||||
/Library/Homebrew/test/junit
 | 
			
		||||
/Library/Homebrew/test/fs_leak_log
 | 
			
		||||
/Library/Homebrew/vendor/portable-ruby
 | 
			
		||||
/Library/Taps
 | 
			
		||||
@ -133,6 +134,7 @@
 | 
			
		||||
**/vendor/bundle/ruby/*/gems/rspec-*/
 | 
			
		||||
**/vendor/bundle/ruby/*/gems/rspec-core-*/
 | 
			
		||||
**/vendor/bundle/ruby/*/gems/rspec-expectations-*/
 | 
			
		||||
**/vendor/bundle/ruby/*/gems/rspec_junit_formatter-*/
 | 
			
		||||
**/vendor/bundle/ruby/*/gems/rspec-its-*/
 | 
			
		||||
**/vendor/bundle/ruby/*/gems/rspec-mocks-*/
 | 
			
		||||
**/vendor/bundle/ruby/*/gems/rspec-retry-*/
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								Library/Homebrew/.rspec_parallel
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								Library/Homebrew/.rspec_parallel
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,6 @@
 | 
			
		||||
--format NoSeedProgressFormatter
 | 
			
		||||
--format ParallelTests::RSpec::RuntimeLogger
 | 
			
		||||
--out <%= ENV["PARALLEL_RSPEC_LOG_PATH"] %>
 | 
			
		||||
--format RspecJunitFormatter
 | 
			
		||||
--out test/junit/rspec<%= ENV["TEST_ENV_NUMBER"] %>.xml
 | 
			
		||||
<%= "--format RSpec::Github::Formatter" if ENV["GITHUB_ACTIONS"] %>
 | 
			
		||||
@ -12,6 +12,7 @@ gem "ronn", require: false
 | 
			
		||||
gem "rspec", require: false
 | 
			
		||||
gem "rspec-github", require: false
 | 
			
		||||
gem "rspec-its", require: false
 | 
			
		||||
gem "rspec_junit_formatter", require: false
 | 
			
		||||
gem "rspec-retry", require: false
 | 
			
		||||
gem "rspec-wait", require: false
 | 
			
		||||
gem "rubocop", require: false
 | 
			
		||||
 | 
			
		||||
@ -109,6 +109,8 @@ GEM
 | 
			
		||||
    rspec-support (3.10.2)
 | 
			
		||||
    rspec-wait (0.0.9)
 | 
			
		||||
      rspec (>= 3, < 4)
 | 
			
		||||
    rspec_junit_formatter (0.4.1)
 | 
			
		||||
      rspec-core (>= 2, < 4, != 2.12.0)
 | 
			
		||||
    rubocop (1.17.0)
 | 
			
		||||
      parallel (~> 1.10)
 | 
			
		||||
      parser (>= 3.0.0.0)
 | 
			
		||||
@ -194,6 +196,7 @@ DEPENDENCIES
 | 
			
		||||
  rspec-retry
 | 
			
		||||
  rspec-sorbet
 | 
			
		||||
  rspec-wait
 | 
			
		||||
  rspec_junit_formatter
 | 
			
		||||
  rubocop
 | 
			
		||||
  rubocop-ast
 | 
			
		||||
  rubocop-performance
 | 
			
		||||
 | 
			
		||||
@ -111,6 +111,7 @@ module Homebrew
 | 
			
		||||
      else
 | 
			
		||||
        "#{HOMEBREW_CACHE}/#{parallel_rspec_log_name}"
 | 
			
		||||
      end
 | 
			
		||||
      ENV["PARALLEL_RSPEC_LOG_PATH"] = parallel_rspec_log_path
 | 
			
		||||
 | 
			
		||||
      parallel_args = if ENV["CI"]
 | 
			
		||||
        %W[
 | 
			
		||||
@ -133,13 +134,8 @@ module Homebrew
 | 
			
		||||
        --seed #{seed}
 | 
			
		||||
        --color
 | 
			
		||||
        --require spec_helper
 | 
			
		||||
        --format NoSeedProgressFormatter
 | 
			
		||||
        --format ParallelTests::RSpec::RuntimeLogger
 | 
			
		||||
        --out #{parallel_rspec_log_path}
 | 
			
		||||
      ]
 | 
			
		||||
 | 
			
		||||
      bundle_args << "--format" << "RSpec::Github::Formatter" if ENV["GITHUB_ACTIONS"]
 | 
			
		||||
 | 
			
		||||
      unless OS.mac?
 | 
			
		||||
        bundle_args << "--tag" << "~needs_macos" << "--tag" << "~cask"
 | 
			
		||||
        files = files.reject { |p| p =~ %r{^test/(os/mac|cask)(/.*|_spec\.rb)$} }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user