Skip to content

[wasm] Rationalize wasm jobs run on CI - #65035

Merged
radical merged 3 commits into
dotnet:mainfrom
radical:wasm-ci
Feb 18, 2022
Merged

[wasm] Rationalize wasm jobs run on CI#65035
radical merged 3 commits into
dotnet:mainfrom
radical:wasm-ci

Conversation

@radical

@radicalradical commented Feb 9, 2022

Copy link
Copy Markdown
Member

Essentially:

  • For rolling builds, we want to run all the wasm jobs, unconditionally
    • And runtime-extra-platforms runs the tests that were not in runtime, and runtime-staging
  • For PRs, we use the various path checks

Changes:

  • split wasm jobs into various templates
  • combine, and simplify some jobs

Updated state of wasm jobs

PR:

  • runtime-extra-platforms, and runtime-wasm run only when manually triggered with a comment - /azp run <pipeline-name>
  • runtime, and runtime-staging, run jobs only when relevant paths change. And for EAT, and AOT, only smoke tests are run.
  • And when runtime-wasm is triggered manually, it runs all the wasm jobs completely
.runtimeruntime-stagingruntime-extra-platforms(manual only)runtime-wasm (manual only)
libtestslinux: all, only-pcwindows: all, only-pclinux+windows: all, only-pclinux+windows: all, always
libtests eatlinux: smoke, only-pc-linux: all, only-pclinux: all, always
libtests aotlinux: smoke, only-pcwindows: smoke, only-pclinux+windows: all, only-pclinux+windows: all, always
Wasm.Build.Testslinux: only-pcwindows: only-pclinux+windows: only-pclinux+windows
Debugger tests-linux+windows: only-pclinux+windows: only-pclinux+windows
Runtime testslinux: only-pc-linux: only-pclinux

Rolling build (twice a day):

  • runtime, and runtime-staging, run all the wasm jobs unconditionally, but EAT, and AOT still run only smoke tests.

  • runtime-extra-platforms also runs by default. And it runs only the cases not covered by the above two pipelines.

  • jobs w/o only-pc are always run

.runtimeruntime-stagingruntime-extra-platforms (always run)runtime-wasm (manual only)
libtestslinux: all(v8/chr)windows: allnoneN/A
libtests eatlinux: smoke-linux: all
libtests aotlinux: smokewindows: smokelinux+windows: all
Wasm.Build.Testslinux: alwayswindows: alwaysnone
Debugger tests-linux+windows: alwaysnone
Runtime testslinux: always-none

@ghost

ghost commented Feb 9, 2022

Copy link
Copy Markdown

Tagging subscribers to this area: @directhex
See info in area-owners.md if you want to be subscribed.

Issue Details

Essentially:

  • For rolling builds, we want to run all the wasm jobs, unconditionally
  • For PRs, we use the various path checks

Changes:

  • runtime-staging: for rolling builds, always run the wasm jobs
  • runtime-extra-platforms: for rolling builds, don't run any wasm jobs, as they are now run unconditionally by runtime, and runtime-staging pipelines
  • combine, and simplify some jobs
Author:radical
Assignees:radical
Labels:

area-Infrastructure-mono

Milestone:-

@radical

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-wasm

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@radicalradical added the NO-REVIEW Experimental/testing PR, do NOT review it label Feb 9, 2022
@radical

Copy link
Copy Markdown
MemberAuthor

Two ways to do this:

  1. For rolling builds, build all the wasm jobs in runtime+runtime-staging

    • this is what I tried to implement here, but I didn't realize that runSmokeTestsOnly will be true for runtime+runtime-staging, even on rolling builds. So, we would need to make it true only on PRs.
  2. For rolling builds, don't run any wasm jobs in runtime+runtime-staging, instead run all of them in runtime-extra-platforms

Which one makes sense?

@radical

Copy link
Copy Markdown
MemberAuthor

@safern any thoughts on #65035 (comment) ?

@safern

Copy link
Copy Markdown
Member

@safern any thoughts on #65035 (comment) ?

This goes against the goal that we had with adding runtime-extra-platforms pipeline, the goal and intent is that runtime PR builds are the same as runtime rolling builds, so if we run smoke tests on PRs, the rolling build should run the same set of tests. This helps CI Council and infrastructure team evaluate and investigate pass rate for the pipeline and know in what state our PRs are in.

I would try and do the same for runtime-extra-platforms as rolling builds is our only input of data on how stable a pipeline is (this is because PR builds can fail due to a change on the PR itself, not because the pipeline is broken in that branch).

@radical

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-wasm

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@radical

Copy link
Copy Markdown
MemberAuthor

Need to confirm what runtime-extra-platforms, and runtime-wasm would run on the PR.

@radical

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-extra-platforms

@radical

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-wasm

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

1 similar comment
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@radical

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-wasm,runtime-extra-platforms

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 2 pipeline(s).

@radical

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-wasm,runtime-extra-platforms

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 2 pipeline(s).

@radical

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-wasm,runtime-extra-platforms

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 2 pipeline(s).

@radical

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-wasm,runtime-extra-platforms

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 2 pipeline(s).

@melvinmezzymelvinmezzy left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Feedback

Comment threadeng/pipelines/common/templates/wasm-library-tests.yml Outdated
Comment threadeng/pipelines/common/templates/wasm-library-tests.yml Outdated
@radical

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-wasm,runtime-extra-platforms

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 2 pipeline(s).

@radical

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-wasm,runtime-extra-platforms

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@radical

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-wasm,runtime-extra-platforms

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 2 pipeline(s).

Essentially:
- For rolling builds, we want to run all the wasm jobs, unconditionally
- And `runtime-extra-platforms` runs the tests that were not in `runtime`, and `runtime-staging`
- For PRs, we use the various path checks
Changes:
- split wasm jobs into various templates
- combine, and simplify some jobs
* `runtime-extra-platforms`, and `runtime-wasm` run only when manually
triggered with a comment - `/azp run <pipeline-name>`
* `runtime`, and `runtime-staging`, run jobs only when relevant paths
change. And for `EAT`, and `AOT`, only smoke tests are run.
* And when `runtime-wasm` is triggered manually, it runs *all* the wasm
jobs completely
| . | runtime | runtime-staging | runtime-extra-platforms(manual only) | runtime-wasm (manual only) |
| ----------------- | -------------------- | --------------- | ------------------------------------ | ------- |
| libtests | linux: all, only-pc | windows: all, only-pc | linux+windows: all, only-pc | linux+windows: all, always |
| libtests eat | linux: smoke, only-pc | - | linux: all, only-pc | linux: all, always |
| libtests aot | linux: smoke, only-pc | windows: smoke, only-pc | linux+windows: all, only-pc | linux+windows: all, always |
| | | | | |
| Wasm.Build.Tests | linux: only-pc | windows: only-pc | linux+windows: only-pc | linux+windows |
| Debugger tests | - | linux+windows: only-pc | linux+windows: only-pc | linux+windows |
| Runtime tests | linux: only-pc | - | linux: only-pc | linux |
* `runtime`, and `runtime-staging`, run all the wasm jobs unconditionally, but `EAT`, and `AOT` still run only smoke tests.
* `runtime-extra-platforms` also runs by default. And it runs only the cases not covered by the above two pipelines.
* jobs w/o `only-pc` are always run
| . | runtime | runtime-staging | runtime-extra-platforms (always run) | runtime-wasm (manual only) |
| ----------------- | ------------- | --------------- | ------------------------------------ | ------ |
| libtests | linux: all(v8/chr/node) | windows: all | linux+windows: all with node | N/A |
| libtests eat | linux: smoke | - | linux: all | |
| libtests aot | linux: smoke | windows: smoke | linux+windows: all | |
| | | | | |
| Wasm.Build.Tests | linux: always | windows: always | none | |
| Debugger tests | - | linux+windows: always | none | |
| Runtime tests | linux: always | - | none | |
@radical

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-extra-platforms

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@radical
radical marked this pull request as ready for review February 15, 2022 21:00
@radicalradical removed the NO-REVIEW Experimental/testing PR, do NOT review it label Feb 15, 2022
@radical
radical requested a review from lewingFebruary 15, 2022 21:06
@radical

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-wasm,runtime-extra-platforms

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 2 pipeline(s).

@radical

Copy link
Copy Markdown
MemberAuthor

Merged main to resolve new conflicts.

@lewinglewing left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Any obections?

@radical

Copy link
Copy Markdown
MemberAuthor

This is essentially moving the wasm jobs to separate template files, and then using them in the original locations.

@radical

Copy link
Copy Markdown
MemberAuthor

Wasm.Build.Tests haven't run in more than 14days now, this fixes the case.

@radical
radical merged commit 463bd75 into dotnet:mainFeb 18, 2022
@radical
radical deleted the wasm-ci branch February 18, 2022 16:16
@ghostghost locked as resolved and limited conversation to collaborators Mar 20, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@radical@safern@lewing@melvinmezzy