-
Notifications
You must be signed in to change notification settings - Fork 5k
Publish crossgen2 as .zip/tar.gz file #34623
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
Publish crossgen2 as .zip/tar.gz file #34623
Conversation
davidwrighton
commented
Apr 7, 2020
- For consumption in dotnet-docker repo
Tagging @ViktorHofer as an area owner |
@MichaelSimons @richlander this should make producing the docker images easier for crossgen2 scenarios. @jkoritzinsky Could you review this or nominate the right reviewer? |
I don't think we want to check in binary files. I believe we should instead leverage a NuGet or Azure blob feed for binary data. |
@dotnet/arcade-contrib Does Arcade have a solution for binary data? /cc @jashook |
We've used native tool bootstrapping, and had several issues on non-windows platforms before. I am not aware if they were ever fixed. Also, we are not consuming a zipped tool, but rather trying to create one for consumption. Not sure how it's intended to be used at the other end, but native bootstrapping doesn't sound like the best solution it we're trying to consume latest bits over there. From what I see this logic is going what we do with the runtime: pack build outputs into a zip and try to push it along the dotnet runtime zips (i.e. dotnet-runtime-5.0.100-preview.x.xxxxxx.x-win-x64.zip) to the As a side note, I see the path of the asset being produced ends up like this: |
Also, is |
If it's published as part of the blob artifacts of the repo (like the rest of the msi's and zips that are produced in this repo), it will end up in blob storage as part of the publishing process. The location shouldn't be hardcoded in the build at all. https://github.com/dotnet/runtime/blob/master/src/installer/publish/prepare-artifacts.proj#L111 shows where the zips, msis, etc. are picked up by PushToAzureDevOpsArtifacts and then those will make their way through publishing later and end up on various feeds. In the case of the .NET 5 channels, these end up in the dotnetcli storage account, under the dotnet container. The downstream builds would then download those from the target location, constructing the path based on the current runtime version number. |
Oops, didn't mean to put anything binary in there. |
- For consumption in dotnet-docker repo
681dfbc
to
e5cc344
Compare
The goal with this work is to place crossgen2 in location which can be used by our dotnet-docker DockerFile build process. See https://github.com/dotnet/dotnet-docker/blob/nightly/5.0/runtime/alpine3.11/amd64/Dockerfile for an example of how the dotnet-docker repo reads these things. At the moment, I'm not sure if we will need to use crossgen2 in our docker file creation path or not, but that's the model we're planning to use as we prototype using crossgen2 to optimize our Linux docker experience. |
Should we have |
@davidwrighton do you want a self-contained or framework-dependent setup for crossgen2 in the compressed file? Currently you have the framework-dependent build. To get a self-contained build, you'll have to do a little bit more MSBuild-foo to wire everything up (since we have to manually assemble the self-contained output as we go). |
Yep, and it would show up in that location on the CDN:
|
Given the version is matching for runtime + crossgen2, as long as crossgen2 is invoked with that host, all will work. Then this all looks ok. |
@jkoritzinsky @hoyosjs a framework dependent build is fine. Docker production has access to the matching framework. |
Has anyone validated the resulting .zip/tar.gz files? I took a look at the latest build drop and the files are there but they are only ~8 KB. The one I inspected only contained the license and TPN. |
I validated that when I built locally it had stuff in it, but I the build lab appears to work differently. @jkoritzinsky, could you give me some guidance here? |