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

Add new official build for runtimelab #2563

Merged
merged 17 commits into from Apr 26, 2024

Conversation

agocke
Copy link
Member

@agocke agocke commented Apr 25, 2024

This brings in the same 1ES official build templates that are in runtime and are now required for all internal builds.

eng/pipelines/official.yml Outdated Show resolved Hide resolved
eng/pipelines/official.yml Outdated Show resolved Hide resolved
eng/pipelines/official.yml Outdated Show resolved Hide resolved
@agocke
Copy link
Member Author

agocke commented Apr 25, 2024

FYI for msft employees, internal run ID is 2438214

@jkotas
Copy link
Member

jkotas commented Apr 25, 2024

internal run ID is 2438214

Succeeded, but it did not publish the packages (e.g. https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-experimental/NuGet/runtime.browser-wasm.Microsoft.DotNet.ILCompiler.LLVM/)

Copy link

@SingleAccretion SingleAccretion left a comment

Choose a reason for hiding this comment

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

Some high level questions.

What is it exactly that is required of the "official" .yml (that wasn't previously)?

Is it required to have a separate .yml instead of using runtimelab.yml with isOfficialBuild: true, or is it a code organization choice? Can/should we delete isOfficialBuild == true paths from runtimelab.yml now (downstream and upstream)?

extends:
template: /eng/pipelines/common/templates/pipeline-with-resources.yml@self
parameters:
isOfficialBuild: true

Choose a reason for hiding this comment

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

Below in the file, there are places that check isOfficialBuild instead of hardcoding it. What is the intent behind that?

Copy link
Member Author

Choose a reason for hiding this comment

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

It is likely that some are auto-generated from the conversion script, and some were just written by me by hand. Thus you have me hardcoding things to true (because this is the official build) and the script not knowing what to do and pulling the variable.

templatePath: 'templates-official'
timeoutInMinutes: 300
isOfficialBuild: ${{ variables.isOfficialBuild }}
testGroup: innerloop

Choose a reason for hiding this comment

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

testGroup: innerloop

Where is this parameter defined? I don't see it in https://github.com/dotnet/runtimelab/blob/feature/NativeAOT-LLVM/eng/pipelines/common/global-build-job.yml.

Comment on lines 56 to 57
${{ if eq(variables.isOfficialBuild, true) }}:
buildArgs: -s clr.aot+libs+nativeaot.packages -c $(_BuildConfig)

Choose a reason for hiding this comment

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

This is an odd placement for buildArgs. I wonder if the indentation works out correctly.

jobTemplate: /eng/pipelines/common/global-build-job.yml
buildConfig: Release
platforms:
- windows_arm64
Copy link
Contributor

Choose a reason for hiding this comment

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

windows_x64 ?

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 will add that.

Choose a reason for hiding this comment

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

Note that we don't really need windows_arm64 here (and probably don't want it, since it doesn't get tested on PR CI).

@agocke
Copy link
Member Author

agocke commented Apr 25, 2024

internal run ID is 2438214

Succeeded, but it did not publish the packages (e.g. https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-experimental/NuGet/runtime.browser-wasm.Microsoft.DotNet.ILCompiler.LLVM/)

Yup, expected -- it's branch gated so we won't get any new packages until this is merged.

@agocke
Copy link
Member Author

agocke commented Apr 25, 2024

What is it exactly that is required of the "official" .yml (that wasn't previously)?

In short, we need to import an internal template that sets policy.

Is it required to have a separate .yml instead of using runtimelab.yml with isOfficialBuild: true, or is it a code organization choice?

It's possible to share, but hard. The internal template requires certain tasks to be used, and those tasks aren't available in the public template. The current guidance is to split to internal and external.

Can/should we delete isOfficialBuild == true paths from runtimelab.yml now (downstream and upstream)?

Yes, although that's not strictly necessary.

Copy link

@SingleAccretion SingleAccretion left a comment

Choose a reason for hiding this comment

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

Thank you for the explanation, it makes sense to me.

I have added a couple suggestions that hardcode the official build parameter and make the code a bit simpler.

Modulo that, LGTM. We can see to the runtimelab.yml changes separately.

I am assuming a version of this will go upstream. Is that correct?

eng/pipelines/runtimelab-official.yml Outdated Show resolved Hide resolved
eng/pipelines/runtimelab-official.yml Outdated Show resolved Hide resolved
eng/pipelines/runtimelab-official.yml Outdated Show resolved Hide resolved
jobTemplate: /eng/pipelines/common/global-build-job.yml
buildConfig: Release
platforms:
- windows_arm64

Choose a reason for hiding this comment

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

Note that we don't really need windows_arm64 here (and probably don't want it, since it doesn't get tested on PR CI).

eng/pipelines/runtimelab-official.yml Outdated Show resolved Hide resolved
eng/pipelines/runtimelab-official.yml Show resolved Hide resolved
agocke and others added 7 commits April 25, 2024 14:26
Co-authored-by: SingleAccretion <62474226+SingleAccretion@users.noreply.github.com>
Co-authored-by: SingleAccretion <62474226+SingleAccretion@users.noreply.github.com>
Co-authored-by: SingleAccretion <62474226+SingleAccretion@users.noreply.github.com>
Co-authored-by: SingleAccretion <62474226+SingleAccretion@users.noreply.github.com>
Co-authored-by: SingleAccretion <62474226+SingleAccretion@users.noreply.github.com>
Copy link
Contributor

@yowl yowl left a comment

Choose a reason for hiding this comment

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

LGTM, thanks

@jkotas
Copy link
Member

jkotas commented Apr 26, 2024

Also build tests in official build

I do not think we should be doing that. It makes official build flakier and the failures in official build are impossible for non-Microsoft people to see and debug.

@agocke
Copy link
Member Author

agocke commented Apr 26, 2024

The current config is running tests, so I can instead just skip testing entirely.

@jkotas
Copy link
Member

jkotas commented Apr 26, 2024

skip testing entirely.

Yes, that would be better.

@yowl
Copy link
Contributor

yowl commented Apr 26, 2024

The current config is running tests, so I can instead just skip testing entirely.

Sorry, my mistake.

@agocke
Copy link
Member Author

agocke commented Apr 26, 2024

np, simple change. Looks like the internal build passed.

@agocke agocke merged commit 9bee337 into dotnet:feature/NativeAOT-LLVM Apr 26, 2024
11 checks passed
@agocke agocke deleted the 1es-official branch April 26, 2024 21:34
@jkotas
Copy link
Member

jkotas commented Apr 28, 2024

I am assuming a version of this will go upstream. Is that correct?

dotnet/runtime#101655

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.

None yet

4 participants