Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

workflows/tests: use Big Sur. #9010

Merged
merged 1 commit into from Nov 6, 2020

Conversation

MikeMcQuaid
Copy link
Member

@MikeMcQuaid MikeMcQuaid commented Oct 29, 2020

Let's try out GitHub Actions on Big Sur and see how broken it is (or, hopefully, isn't).

@MikeMcQuaid
Copy link
Member Author

It can't build any native gems and uses the wrong SDK. Awesome 😭

@fxcoudert
Copy link
Member

It's using /Applications/Xcode_11.7.app, and the release notes for this version say:

Xcode 11.7 is available in the Mac App Store and includes SDKs for iOS 13.7, iPadOS 13.7, tvOS 13.4, watchOS 6.2, and macOS Catalina 10.15.6

I believe that's where the error comes from: it's using the 10.15 SDK because it's what shipped with Xcode 11.7. Xcode 12.2 RC should be installed instead.

@MikeMcQuaid
Copy link
Member Author

@fxcoudert Thanks! Trying that now.

@MikeMcQuaid MikeMcQuaid force-pushed the github_actions_big_sur branch 2 times, most recently from 6090494 to f164c9e Compare November 6, 2020 11:28
@fxcoudert
Copy link
Member

fxcoudert commented Nov 6, 2020

There are a bunch of test failures with:

expected block to not output to stderr, but output "Warning: You are using macOS 11.0.\nWe do not provide support for this pre-release version

And a Java-related error:

1st Try error in ./test/language/java_spec.rb:8:
undefined method `/' for nil:NilClass

RSpec::Retry: 2nd try ./test/language/java_spec.rb:8
F
Error: Language::Java::java_home returns valid JAVA_HOME if version is specified

Failure/Error: expect(java_home/"bin/java").to be_an_executable

@fxcoudert
Copy link
Member

fxcoudert commented Nov 6, 2020

Running brew tests locally on a Big Sur 10.0.1 beta I get additionnal errors:

  1) Utils::Bottles#tag returns :catalina on Catalina
     Failure/Error: expect(described_class.tag).to eq(:catalina)
     
       expected: :catalina
            got: :arm64_catalina
     
       (compared using ==)
     
       Diff:
       @@ -1 +1 @@
       -:catalina
       +:arm64_catalina
       
     # ./test/utils/bottles/bottles_spec.rb:10:in `block (3 levels) in <top (required)>'
     # ./test/support/helper/spec/shared_context/homebrew_cask.rb:52:in `block (2 levels) in <top (required)>'
     # ./test/spec_helper.rb:194:in `block (3 levels) in <top (required)>'
     # ./test/spec_helper.rb:193:in `block (2 levels) in <top (required)>'
     # ./vendor/bundle/ruby/2.6.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run'
     # ./vendor/bundle/ruby/2.6.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop'
     # ./vendor/bundle/ruby/2.6.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run'
     # ./vendor/bundle/ruby/2.6.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry'
     # ./vendor/bundle/ruby/2.6.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup'
     # ./vendor/bundle/ruby/2.6.0/gems/rspec-wait-0.0.9/lib/rspec/wait.rb:46:in `block (2 levels) in <top (required)>'


  2) Satisfy Dependencies and Requirements depends_on arch when satisfied does not raise an error
     Failure/Error: expect { install }.not_to raise_error
     
       expected no Exception, got #<Cask::CaskError: Cask with-depends-on-arch depends on hardware architecture being one of [{:type=>:intel, :bits=>64}], but you are running {:type=>:arm, :bits=>64}> with backtrace:
         # ./cask/installer.rb:272:in `arch_dependencies'
         # ./cask/installer.rb:251:in `satisfy_dependencies'
         # ./cask/installer.rb:66:in `fetch'
         # ./cask/installer.rb:94:in `install'
         # ./test/cask/depends_on_spec.rb:8:in `block (2 levels) in <top (required)>'
         # ./test/cask/depends_on_spec.rb:73:in `block (5 levels) in <top (required)>'
         # ./test/cask/depends_on_spec.rb:73:in `block (4 levels) in <top (required)>'
         # ./test/support/helper/spec/shared_context/homebrew_cask.rb:52:in `block (2 levels) in <top (required)>'
         # ./test/spec_helper.rb:194:in `block (3 levels) in <top (required)>'
         # ./test/spec_helper.rb:193:in `block (2 levels) in <top (required)>'
         # ./vendor/bundle/ruby/2.6.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run'
         # ./vendor/bundle/ruby/2.6.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop'
         # ./vendor/bundle/ruby/2.6.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run'
         # ./vendor/bundle/ruby/2.6.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry'
         # ./vendor/bundle/ruby/2.6.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup'
         # ./vendor/bundle/ruby/2.6.0/gems/rspec-wait-0.0.9/lib/rspec/wait.rb:46:in `block (2 levels) in <top (required)>'
     # ./test/cask/depends_on_spec.rb:73:in `block (4 levels) in <top (required)>'
     # ./test/support/helper/spec/shared_context/homebrew_cask.rb:52:in `block (2 levels) in <top (required)>'
     # ./test/spec_helper.rb:194:in `block (3 levels) in <top (required)>'
     # ./test/spec_helper.rb:193:in `block (2 levels) in <top (required)>'
     # ./vendor/bundle/ruby/2.6.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run'
     # ./vendor/bundle/ruby/2.6.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop'
     # ./vendor/bundle/ruby/2.6.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run'
     # ./vendor/bundle/ruby/2.6.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry'
     # ./vendor/bundle/ruby/2.6.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup'
     # ./vendor/bundle/ruby/2.6.0/gems/rspec-wait-0.0.9/lib/rspec/wait.rb:46:in `block (2 levels) in <top (required)>'

and

  1) Formulary::factory when given a bottle calling #local_bottle_path on the returned Formula returns the bottle path
     Failure/Error: subject(:formula) { described_class.factory(bottle) }
     
     Errno::ENOENT:
       No such file or directory @ realpath_rec - /usr/local/Homebrew/Library/Homebrew/test/support/fixtures/bottles/testball_bottle-0.1.arm64_big_sur.bottle.tar.gz
     # ./formulary.rb:169:in `realpath'
     # ./formulary.rb:169:in `realpath'
     # ./formulary.rb:169:in `initialize'
     # ./formulary.rb:441:in `new'
     # ./formulary.rb:441:in `loader_for'
     # ./formulary.rb:346:in `factory'
     # ./test/formulary_spec.rb:110:in `block (4 levels) in <top (required)>'
     # ./test/formulary_spec.rb:117:in `block (4 levels) in <top (required)>'
     # ./test/spec_helper.rb:194:in `block (3 levels) in <top (required)>'
     # ./test/spec_helper.rb:193:in `block (2 levels) in <top (required)>'
     # ./vendor/bundle/ruby/2.6.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run'
     # ./vendor/bundle/ruby/2.6.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop'
     # ./vendor/bundle/ruby/2.6.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run'
     # ./vendor/bundle/ruby/2.6.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry'
     # ./vendor/bundle/ruby/2.6.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup'
     # ./vendor/bundle/ruby/2.6.0/gems/rspec-wait-0.0.9/lib/rspec/wait.rb:46:in `block (2 levels) in <top (required)>'

  2) Formulary::factory when given a bottle returns a Formula
     Failure/Error: subject(:formula) { described_class.factory(bottle) }
     
     Errno::ENOENT:
       No such file or directory @ realpath_rec - /usr/local/Homebrew/Library/Homebrew/test/support/fixtures/bottles/testball_bottle-0.1.arm64_big_sur.bottle.tar.gz
     # ./formulary.rb:169:in `realpath'
     # ./formulary.rb:169:in `realpath'
     # ./formulary.rb:169:in `initialize'
     # ./formulary.rb:441:in `new'
     # ./formulary.rb:441:in `loader_for'
     # ./formulary.rb:346:in `factory'
     # ./test/formulary_spec.rb:110:in `block (4 levels) in <top (required)>'
     # ./test/formulary_spec.rb:113:in `block (4 levels) in <top (required)>'
     # ./test/spec_helper.rb:194:in `block (3 levels) in <top (required)>'
     # ./test/spec_helper.rb:193:in `block (2 levels) in <top (required)>'
     # ./vendor/bundle/ruby/2.6.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run'
     # ./vendor/bundle/ruby/2.6.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop'
     # ./vendor/bundle/ruby/2.6.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run'
     # ./vendor/bundle/ruby/2.6.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry'
     # ./vendor/bundle/ruby/2.6.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup'
     # ./vendor/bundle/ruby/2.6.0/gems/rspec-wait-0.0.9/lib/rspec/wait.rb:46:in `block (2 levels) in <top (required)>'

and then this:

  1) Hardware::CPU::family returns the current CPU's family name as a symbol, or :dunno if it cannot be detected
     Failure/Error: expect(cpu_families).to include described_class.family
     
       expected [:arm, :arrandale, :atom, :broadwell, :core, :core2, :dothan, :haswell, :icelake, :ivybridge, :kabylake, :merom, :nehalem, :penryn, :prescott, :presler, :sandybridge, :skylake, :westmere, :dunno] to include :arm_vortex_tempest
       Diff:
       @@ -1,20 +1,39 @@
       -[:arm_vortex_tempest]
       +[:arm,
       + :arrandale,
       + :atom,
       + :broadwell,
       + :core,
       + :core2,
       + :dothan,
       + :haswell,
       + :icelake,
       + :ivybridge,
       + :kabylake,
       + :merom,
       + :nehalem,
       + :penryn,
       + :prescott,
       + :presler,
       + :sandybridge,
       + :skylake,
       + :westmere,
       + :dunno]
       
     # ./test/hardware/cpu_spec.rb:49:in `block (3 levels) in <top (required)>'
     # ./test/spec_helper.rb:194:in `block (3 levels) in <top (required)>'
     # ./test/spec_helper.rb:193:in `block (2 levels) in <top (required)>'
     # ./vendor/bundle/ruby/2.6.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run'
     # ./vendor/bundle/ruby/2.6.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop'
     # ./vendor/bundle/ruby/2.6.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run'
     # ./vendor/bundle/ruby/2.6.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry'
     # ./vendor/bundle/ruby/2.6.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup'
     # ./vendor/bundle/ruby/2.6.0/gems/rspec-wait-0.0.9/lib/rspec/wait.rb:46:in `block (2 levels) in <top (required)>'

@MikeMcQuaid
Copy link
Member Author

Running brew tests locally on a Big Sur 10.0.1 beta I get additionnal errors:

Those (or: some of those) will be ARM/DTK specific but thanks for reporting anyway.

@MikeMcQuaid MikeMcQuaid force-pushed the github_actions_big_sur branch 2 times, most recently from cb8b9da to 44f2638 Compare November 6, 2020 13:24
@fxcoudert
Copy link
Member

Those (or: some of those) will be ARM/DTK specific but thanks for reporting anyway.

Oh sure I know, I was just quickly dumping them there in passing. I should have opened an issue instead, which is what I'll do right now.

@MikeMcQuaid MikeMcQuaid force-pushed the github_actions_big_sur branch 2 times, most recently from 180af1a to 3d6b38c Compare November 6, 2020 14:08
@MikeMcQuaid MikeMcQuaid force-pushed the github_actions_big_sur branch 3 times, most recently from dbc10a9 to 658562c Compare November 6, 2020 15:01
Migrate GitHub Actions to Big Sur.
@MikeMcQuaid MikeMcQuaid merged commit 3543d69 into Homebrew:master Nov 6, 2020
@MikeMcQuaid MikeMcQuaid deleted the github_actions_big_sur branch November 6, 2020 15:56
@BrewTestBot BrewTestBot added the outdated PR was locked due to age label Dec 11, 2020
@Homebrew Homebrew locked as resolved and limited conversation to collaborators Dec 11, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
outdated PR was locked due to age
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants