BYOC macOS (ARM)

alex.kontos's Avatar

alex.kontos

12 Apr, 2021 02:12 PM

Hi,

I am attempting to run appveyor as a host agent on an M1 Mac mini.

Unfortunately, it seems the brew service seems to fail:

brew services                            
Name                Status  User    Plist
appveyor-host-agent error   akontos /Users/akontos/Library/LaunchAgents/homebrew.mxcl.appveyor-host-agent.plist
cat /opt/homebrew/var/appveyor/host-agent/host-agent.stderr.log
Unhandled exception. System.ArgumentNullException: Value cannot be null. (Parameter 'path')
   at System.IO.Directory.CreateDirectory(String path)
   at Appveyor.HostAgent.Data.HostAgentContext.OnConfiguring(DbContextOptionsBuilder optionsBuilder)
   at Microsoft.EntityFrameworkCore.DbContext.get_InternalServiceProvider()
   at Microsoft.EntityFrameworkCore.DbContext.Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<System.IServiceProvider>.get_Instance()
   at Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade.Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<System.IServiceProvider>.get_Instance()
   at Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.GetRelationalService[TService](IInfrastructure`1 databaseFacade)
   at Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.Migrate(DatabaseFacade databaseFacade)
   at Appveyor.HostAgent.AppHost.Run(CancellationToken cancellationToken)
   at Appveyor.HostAgent.AgentHostedService.ExecuteAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Appveyor.HostAgent.Program.Main(String[] args)
   at Appveyor.HostAgent.Program.<Main>(String[] args)
Unhandled exception. System.ArgumentNullException: Value cannot be null. (Parameter 'path')
   at System.IO.Directory.CreateDirectory(String path)
   at Appveyor.HostAgent.Data.HostAgentContext.OnConfiguring(DbContextOptionsBuilder optionsBuilder)
   at Microsoft.EntityFrameworkCore.DbContext.get_InternalServiceProvider()
   at Microsoft.EntityFrameworkCore.DbContext.Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<System.IServiceProvider>.get_Instance()
   at Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade.Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<System.IServiceProvider>.get_Instance()
   at Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.GetRelationalService[TService](IInfrastructure`1 databaseFacade)
   at Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.Migrate(DatabaseFacade databaseFacade)
   at Appveyor.HostAgent.AppHost.Run(CancellationToken cancellationToken)
   at Appveyor.HostAgent.AgentHostedService.ExecuteAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Appveyor.HostAgent.Program.Main(String[] args)
   at Appveyor.HostAgent.Program.<Main>(String[] args)
Unhandled exception. System.ArgumentNullException: Value cannot be null. (Parameter 'path')
   at System.IO.Directory.CreateDirectory(String path)
   at Appveyor.HostAgent.Data.HostAgentContext.OnConfiguring(DbContextOptionsBuilder optionsBuilder)
   at Microsoft.EntityFrameworkCore.DbContext.get_InternalServiceProvider()
   at Microsoft.EntityFrameworkCore.DbContext.Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<System.IServiceProvider>.get_Instance()
   at Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade.Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<System.IServiceProvider>.get_Instance()
   at Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.GetRelationalService[TService](IInfrastructure`1 databaseFacade)
   at Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.Migrate(DatabaseFacade databaseFacade)
   at Appveyor.HostAgent.AppHost.Run(CancellationToken cancellationToken)
   at Appveyor.HostAgent.AgentHostedService.ExecuteAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Appveyor.HostAgent.Program.Main(String[] args)
   at Appveyor.HostAgent.Program.<Main>(String[] args)
cat /opt/homebrew/var/appveyor/host-agent/host-agent.stdout.log 
API server URL: http://localhost:0/
info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[0]
      User profile is available. Using '/Users/akontos/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest.
info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[58]
      Creating key {338bff02-c1d1-4161-8cc1-87342c2b00e1} with creation date 2021-04-12 13:31:00Z, activation date 2021-04-12 13:31:00Z, and expiration date 2021-07-11 13:31:00Z.
warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35]
      No XML encryptor configured. Key {338bff02-c1d1-4161-8cc1-87342c2b00e1} may be persisted to storage in unencrypted form.
info: Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository[39]
      Writing data to file '/Users/akontos/.aspnet/DataProtection-Keys/key-338bff02-c1d1-4161-8cc1-87342c2b00e1.xml'.
info: Appveyor.HostAgent.AgentHostedService[0]
      Starting agent hosted service
info: Appveyor.HostAgent.AppHost[0]
      Starting service host
API server URL: http://localhost:0/
info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[0]
      User profile is available. Using '/Users/akontos/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest.
info: Appveyor.HostAgent.AgentHostedService[0]
      Starting agent hosted service
info: Appveyor.HostAgent.AppHost[0]
      Starting service host
API server URL: http://localhost:0/
info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[0]
      User profile is available. Using '/Users/akontos/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest.
info: Appveyor.HostAgent.AgentHostedService[0]
      Starting agent hosted service
info: Appveyor.HostAgent.AppHost[0]
      Starting service host

I realise macOS ARM may not be supported - but curious if anyone has it working natively or at least via Rosetta?

  1. Support Staff 1 Posted by Feodor Fitsner on 12 Apr, 2021 06:14 PM

    Feodor Fitsner's Avatar

    Are you running it under Rosetta?

  2. 2 Posted by alex.kontos on 13 Apr, 2021 09:17 AM

    alex.kontos's Avatar

    Unfortunately not - trying to run homebrew under Rosetta is a bit of a challenge. I will try and find a way - in the meanwhile will native ARM support be in a future release?

  3. Support Staff 3 Posted by Feodor Fitsner on 21 Apr, 2021 02:52 AM

    Feodor Fitsner's Avatar

    At the moment there is not native support of Darwin/ARM in .NET (while other environments like Go 1.16 has it), so let's hope Microsoft will release it at some point.

Reply to this discussion

Internal reply

Formatting help / Preview (switch to plain text) No formatting (switch to Markdown)

Attaching KB article:

»

Attached Files

You can attach files up to 10MB

If you don't have an account yet, we need to confirm you're human and not a machine trying to post spam.

Keyboard shortcuts

Generic

? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac