diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 732b515ce60efe0e1834284a371038a556199a86..af9a27663b48cc3c2d10b9eff29a396b86d489a0 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -333,14 +333,3 @@ 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 non-PR pushes or 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 == null || 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 diff --git a/Library/Homebrew/dev-cmd/tests.rb b/Library/Homebrew/dev-cmd/tests.rb index b3729144553726728875bceeb70bc46b8ca30e08..63f8d4dc2e599d68f0dc52a512c45b558aabd1f6 100644 --- a/Library/Homebrew/dev-cmd/tests.rb +++ b/Library/Homebrew/dev-cmd/tests.rb @@ -50,14 +50,18 @@ module Homebrew unless Formula["buildpulse-test-reporter"].any_version_installed? ohai "Installing `buildpulse-test-reporter` for reporting test flakiness..." - safe_system HOMEBREW_BREW_FILE, "install", "buildpulse-test-reporter" + with_env(HOMEBREW_NO_AUTO_UPDATE: "1", HOMEBREW_NO_BOOTSNAP: "1") do + safe_system HOMEBREW_BREW_FILE, "install", "buildpulse-test-reporter" + end end ENV["BUILDPULSE_ACCESS_KEY_ID"] = ENV["HOMEBREW_BUILDPULSE_ACCESS_KEY_ID"] ENV["BUILDPULSE_SECRET_ACCESS_KEY"] = ENV["HOMEBREW_BUILDPULSE_SECRET_ACCESS_KEY"] + ohai "Sending test results to BuildPulse" + safe_system Formula["buildpulse-test-reporter"].opt_bin/"buildpulse-test-reporter", - "submit", "Library/Homebrew/test/junit", + "submit", "#{HOMEBREW_LIBRARY_PATH}/test/junit", "--account-id", ENV["HOMEBREW_BUILDPULSE_ACCOUNT_ID"], "--repository-id", ENV["HOMEBREW_BUILDPULSE_REPOSITORY_ID"] end @@ -182,7 +186,10 @@ module Homebrew # Submit test flakiness information using BuildPulse # BUILDPULSE used in spec_helper.rb - ENV["BUILDPULSE"] = "1" if use_buildpulse? + if use_buildpulse? + ENV["BUILDPULSE"] = "1" + ohai "Running tests with BuildPulse-friendly settings" + end if parallel system "bundle", "exec", "parallel_rspec", *parallel_args, "--", *bundle_args, "--", *files diff --git a/Library/Homebrew/test/utils/repology_spec.rb b/Library/Homebrew/test/utils/repology_spec.rb index c72096eedf2306020a4ea98527bf155a7be80aba..71b5e4e837d93f8d092885c2dcbae6084f835f94 100644 --- a/Library/Homebrew/test/utils/repology_spec.rb +++ b/Library/Homebrew/test/utils/repology_spec.rb @@ -14,8 +14,11 @@ describe Repology do it "returns a hash for existing package" do response = described_class.single_package_query("openclonk", repository: "homebrew") - expect(response).not_to be_nil - expect(response).to be_a(Hash) + expect(response).to be_nil + # TODO: uncomment (and remove line above) when we have a fix for Repology + # `curl` issues + # expect(response).not_to be_nil + # expect(response).to be_a(Hash) end end diff --git a/Library/Homebrew/utils/repology.rb b/Library/Homebrew/utils/repology.rb index e4517c2cff4b8810121e05db102d4e759facb2a8..32f817c420e70baf6c93c319457ebddf9343a064 100644 --- a/Library/Homebrew/utils/repology.rb +++ b/Library/Homebrew/utils/repology.rb @@ -15,26 +15,30 @@ module Repology MAX_PAGINATION = 15 private_constant :MAX_PAGINATION - def query_api(last_package_in_response = "", repository:) - last_package_in_response += "/" if last_package_in_response.present? - url = "https://repology.org/api/v1/projects/#{last_package_in_response}?inrepo=#{repository}&outdated=1" - - output, _errors, _status = curl_output(url.to_s) - JSON.parse(output) + def query_api(_last_package_in_response = "", repository:) + {} + # TODO: uncomment (and remove lines above) when we have a fix for Repology + # `curl` issues + # last_package_in_response += "/" if last_package_in_response.present? + # url = "https://repology.org/api/v1/projects/#{last_package_in_response}?inrepo=#{repository}&outdated=1" + + # output, _errors, _status = curl_output(url.to_s) + # JSON.parse(output) end def single_package_query(name, repository:) - url = "https://repology.org/tools/project-by?repo=#{repository}&" \ - "name_type=srcname&target_page=api_v1_project&name=#{name}" - - output, _errors, _status = curl_output("--location", url.to_s) - - begin - data = JSON.parse(output) - { name => data } - rescue - nil - end + # TODO: uncomment when we have a fix for Repology `curl` issues + # url = "https://repology.org/tools/project-by?repo=#{repository}&" \ + # "name_type=srcname&target_page=api_v1_project&name=#{name}" + + # output, _errors, _status = curl_output("--location", url.to_s) + + # begin + # data = JSON.parse(output) + # { name => data } + # rescue + # nil + # end end def parse_api_response(limit = nil, repository:)