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

Use Cosmos emulator instead of Azure instance #19263

Closed
wants to merge 1 commit into from
Closed

Conversation

roji
Copy link
Member

@roji roji commented Dec 10, 2019

  • Windows job downloads and sets up a local Cosmos emulator, and tests against it.
  • Linux job no longer runs tests against our Azure instance.

* Windows job downloads and sets up a local Cosmos emulator, and tests
  against it.
* Linux job no longer runs tests against our Azure instance.
@roji roji requested a review from a team as a code owner December 10, 2019 02:57
condition: ne(variables.CACHE_RESTORED, 'true')
displayName: Download CosmosDB Emulator
- powershell: msiexec /i cosmosdb-emulator-cache-dir\cosmosdb-emulator.msi /qn /quiet /norestart /log install.log
displayName: Install CosmosDB Emulator
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Can the emulator be xcopy installed? Making permanent changes to the AzDO agents is not recommended.
  2. Why repeat the installation if the MSI has already been installed? I suggest checking for the Azure Cosmos DB Emulator folder before doing this.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @dougbu, thanks for taking a look. I'm a total newcomer to our build system so there's likely to be some silliness here.

So do I understand correctly that an MSI installation would persist on the agent, i.e. that state is carried over from one build to the next? Because I was operating with the assumption that the build runs in a VM which is later reset, like the way things work on a normal non-hosted Azure Pipelines build.

I don't think there's a simple xcopy install option for the Cosmos Emulator (here are the docs). They do provide a docker image which I've tried to set up as a service container, but apparently our agents don't have the right version of Windows to support that. The current MSI-based installation also seems like it's much faster because we can cache.

However, if agents don't reset between builds, then is it possible simply have this MSI installed in all our agents once (or included in our image), rather than do it in our script every single time? Aside from having to mess around with caches, it seems like it would be easier to manage upgrades as well (we'd ask for a manual upgrade every now and then, it should really happen pretty rarely).

Thanks for your help and insights on this!

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@roji the BYOC queues work differently from the hosted AzDO queues.

@MattGal what's the process to request the addition of the Cosmos Emulator to the BuildPool.Windows.10.Amd64.VS2017 and BuildPool.Windows.10.Amd64.VS2017.Open queues? Is this doable in a reasonable timeframe?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@roji the BYOC queues work differently from the hosted AzDO queues.

@MattGal what's the process to request the addition of the Cosmos Emulator to the BuildPool.Windows.10.Amd64.VS2017 and BuildPool.Windows.10.Amd64.VS2017.Open queues? Is this doable in a reasonable timeframe?

Create an issue in dotnet/core-eng and we'll discuss in triage. At this point your timeframe is "next year" as at best we'll only have one more rollout before EOY.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ajcvickers @roji is "next year" soon enough?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll start a thread about this offline.

@roji
Copy link
Member Author

roji commented Dec 14, 2019

Closing in favor of #19309

@roji roji closed this Dec 14, 2019
@roji roji deleted the UseCosmosEmulator branch December 14, 2019 15:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants