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

[ArPow] Onboard runtime to arcade-powered source-build #2052

Closed
dagood opened this issue Feb 11, 2021 · 1 comment · Fixed by dotnet/runtime#53294
Closed

[ArPow] Onboard runtime to arcade-powered source-build #2052

dagood opened this issue Feb 11, 2021 · 1 comment · Fixed by dotnet/runtime#53294
Assignees
Labels
area-infra Source-build infrastructure and reporting

Comments

@dagood
Copy link
Member

dagood commented Feb 11, 2021

No description provided.

@dagood dagood self-assigned this Feb 11, 2021
@dagood dagood added area-infra Source-build infrastructure and reporting triaged labels Feb 18, 2021
@dagood
Copy link
Member Author

dagood commented Feb 18, 2021

Here's the current state on this work. It's a little complicated because there's an active breaking change between Arcade and Runtime that I think is still playing out: https://github.com/dotnet/core-eng/issues/12264

For now, I have a branch of Arcade that needs to be plugged into dotnet/runtime. Paths that I'll use later:

I run my build in mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-f39df28-20191023143754, container workdir /work/ volume mapped to the repo directory. I use these utils I threw together for easy dev flow (centosme -- ./build.sh ...): https://github.com/dagood/terminal-setup/blob/master/bash-util/centosme. It's not necessary--when I use it below, it just means it runs the command with the current working directory volume mapped to /work/ in the container.

The docker host is a bare-metal Linux (Fedora) machine.


(1) In ~/git/arcade, run centosme -- ./build.sh --build --restore --pack

(2) Make changes like these to dotnet/runtime to accept the local arcade build:

diff --git a/NuGet.config b/NuGet.config
index d99698bf530..5b1340214d9 100644
--- a/NuGet.config
+++ b/NuGet.config
@@ -13,2 +13,3 @@
     <!-- TEST_RESTORE_SOURCES_INSERTION_LINE -->
+    <add key="local-arcade" value="/work/sandbox" />
     <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
diff --git a/global.json b/global.json
index cb70ea2b691..7b32916853c 100644
--- a/global.json
+++ b/global.json
@@ -15,3 +15,3 @@
     "Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk": "6.0.0-beta.21081.1",
-    "Microsoft.DotNet.Arcade.Sdk": "6.0.0-beta.21081.1",
+    "Microsoft.DotNet.Arcade.Sdk": "6.0.0-dev",
     "Microsoft.DotNet.Helix.Sdk": "6.0.0-beta.21081.1",

(3) Copy the Arcade build into the local feed and build:

git clean -xdff
mkdir sandbox # This name happens to be in the .gitignore, nothing special.
cp -r ~/git/arcade/artifacts/packages/Debug/NonShipping/ sandbox
centosme -- ./build.sh -c Release --restore --build --pack /p:ArcadeBuildFromSource=true /p:SourceBuildNonPortable=true -bl

/p:SourceBuildNonPortable=true gives centos.7-x64 outputs, based on build host (container)
/p:SourceBuildNonPortable=false (or omitted) gives linux-x64 outputs


Once dotnet/runtime gets to a version of Arcade >= 6.0.0-beta.21117.1, the dev branch should be able to be merged up to that point and the workarounds won't be necessary. 6.0.0-beta.21117.1 is the first version with built-in supplemental nupkg support: dotnet/arcade#6961.

/cc @dseefeld @crummel @MichaelSimons

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-infra Source-build infrastructure and reporting
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants