Arcade: Add support to Github url - V3 publishing

Created on 15 Oct 2020  路  7Comments  路  Source: dotnet/arcade

  • [x] This issue is blocking
  • [ ] This issue is causing unreasonable pain

This is the asset manifest for Nuget when I tried to onboard to V3

image

Nuget has no mirrored Azdo repo like all the repos in dotnet.

It fails here -> https://github.com/dotnet/arcade-services/blob/6336f5b25961711f4dff2b4f055aae59627d9740/src/Maestro/Microsoft.DotNet.Maestro.Tasks/src/PushMetadataToBuildAssetRegistry.cs#L618

We need to add support to Github Urls also so in future we can move to private github repos seamlessly.

cc : @mmitche @riarenas @MattGal @zivkan

All 7 comments

The function where this is failing was added as part of the post-build signing effort: https://github.com/dotnet/arcade-services/pull/1275. Looks like we can just try and get the GitHub URI in there as well, but I think someone from that workstream should chime in on what the expectation here is.

CC @chcosta

I think that's fine. @mmitche should chime in as I'm less familiar with this aspect of the manifest or how it's used.

@mmitche I have a cheap fix for this. So previously we did not get repository name in the manifest so we used to parse the AzdoUri. Since recently we have added the repo name to the manifest, we have access to it and we do not actually have to parse any uri to get the repo name.

So instead of adding a new param as the manifest( I can still do it, also have a branch ready with that change, but want to check if this is good enough) , I just added the repo name directly here =>https://github.com/dotnet/arcade-services/pull/1458

This way only maestro task has to update in arcade.

We can probably think of generalizing it to RepositoryUri in clean up epic?

Also I tested this fix in Nuget -> https://dev.azure.com/devdiv/DevDiv/_build/results?buildId=4173101&view=logs&j=2ea8c801-c4c3-578e-0ff0-bcf4c12d9404&t=84cb75a5-b2cd-5cd5-8f62-f083ac53f4fb and it worked :)

I think the fix is okay, but needs a tweak. For github repos, it's going to compute an odd path for the merged manifest blob. Note that unlike windows, // actually generated NuGet.client/<empty-folder>/MergedManifest:

<Blob Id="assets/manifests/NuGet/NuGet.Client//MergedManifest.xml" NonShipping="true" />

Should be

<Blob Id="assets/manifests/NuGet-NuGet.Client/MergedManifest.xml" NonShipping="true" />

You should also check that a non-github repo has the merged manifest placed in the same location it used to.

@epananth Can you open issues to add tests to PushMetadataToBuildAssetRegistry's tests for these cases (github URI and the merged manifest blob id is as shown above)

Was this page helpful?
0 / 5 - 0 ratings