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

[wasm] Rationalize wasm jobs run on CI #65035

Merged
merged 3 commits into from
Feb 18, 2022
Merged

[wasm] Rationalize wasm jobs run on CI #65035

merged 3 commits into from
Feb 18, 2022

Conversation

radical
Copy link
Member

@radical radical commented Feb 9, 2022

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
. 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

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

. runtime runtime-staging runtime-extra-platforms (always run) runtime-wasm (manual only)
libtests linux: all(v8/chr) windows: all none 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

@ghost
Copy link

ghost commented Feb 9, 2022

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
Member Author

radical commented Feb 9, 2022

/azp run runtime-wasm

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

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

radical commented Feb 9, 2022

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
Member Author

radical commented Feb 9, 2022

@safern any thoughts on #65035 (comment) ?

@safern
Copy link
Member

safern commented Feb 10, 2022

@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
Member Author

radical commented Feb 15, 2022

/azp run runtime-wasm

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@radical
Copy link
Member Author

radical commented Feb 15, 2022

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

@radical
Copy link
Member Author

radical commented Feb 15, 2022

/azp run runtime-extra-platforms

@radical
Copy link
Member Author

radical commented Feb 15, 2022

/azp run runtime-wasm

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

1 similar comment
@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@radical
Copy link
Member Author

radical commented Feb 15, 2022

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

@azure-pipelines
Copy link

Azure Pipelines successfully started running 2 pipeline(s).

@radical
Copy link
Member Author

radical commented Feb 15, 2022

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

@azure-pipelines
Copy link

Azure Pipelines successfully started running 2 pipeline(s).

@radical
Copy link
Member Author

radical commented Feb 15, 2022

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

@azure-pipelines
Copy link

Azure Pipelines successfully started running 2 pipeline(s).

@radical
Copy link
Member Author

radical commented Feb 15, 2022

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

@azure-pipelines
Copy link

Azure Pipelines successfully started running 2 pipeline(s).

Copy link

@melvinmezzy melvinmezzy left a comment

Choose a reason for hiding this comment

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

Feedback

@radical
Copy link
Member Author

radical commented Feb 15, 2022

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

@azure-pipelines
Copy link

Azure Pipelines successfully started running 2 pipeline(s).

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@radical
Copy link
Member Author

radical commented Feb 15, 2022

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

@azure-pipelines
Copy link

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
Member Author

radical commented Feb 15, 2022

/azp run runtime-extra-platforms

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

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

radical commented Feb 16, 2022

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

@azure-pipelines
Copy link

Azure Pipelines successfully started running 2 pipeline(s).

@radical
Copy link
Member Author

radical commented Feb 17, 2022

Merged main to resolve new conflicts.

Copy link
Member

@lewing lewing left a comment

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
Member Author

radical commented Feb 17, 2022

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

@radical
Copy link
Member Author

radical commented Feb 18, 2022

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

@radical radical merged commit 463bd75 into dotnet:main Feb 18, 2022
@radical radical deleted the wasm-ci branch February 18, 2022 16:16
@ghost ghost locked as resolved and limited conversation to collaborators Mar 20, 2022
Sign up for free to 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