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

A better way to organize the repositories of tests. #1547

Open
yangby-cryptape opened this issue Nov 13, 2023 · 2 comments
Open

A better way to organize the repositories of tests. #1547

yangby-cryptape opened this issue Nov 13, 2023 · 2 comments
Assignees
Labels
P-Low Priority

Comments

@yangby-cryptape
Copy link
Collaborator

Goals

  • Each revision of the codes has a corresponding revision of test codes.

    • If only the branch name is recorded, the old revisions of the codes will be broken.
      e.g. Do git bisect will be difficult.
  • Each PR could pass all checks, even they have to update the tests.

    • If using workflow_dispatch to run checks for PR, then only workflow scripts in default branch will be executed.

      To trigger the workflow_dispatch event, your workflow must be in the default branch.
      Ref: GitHub Docs: Configuring a workflow to run manually

      So, even you update the workflow scripts, they won't work.
      That means that the revision information of tests should not put in workflow scripts.

  • Group by meaningful topics.

@yangby-cryptape yangby-cryptape added the P-Low Priority label Nov 13, 2023
@sunchengzhu sunchengzhu self-assigned this Nov 20, 2023
@sunchengzhu
Copy link
Collaborator

And, each repository is split into several parts without any meaning.

We have previously discussed that the openzeppelin-contracts are divided into different parts for parallel execution, primarily because the test cases take too long to run. Just for OCT 11, it takes about an hour.
image

runAll0, runAll1, runAll2 are also divisions made for parallel execution. Each 'runAll' executes its test cases in parallel. Due to limitations in machine resources, it's not feasible to run all test cases simultaneously, hence the need for grouping. Grouping also has another advantage. Currently, it's difficult to pinpoint problems solely based on workflow logs. Once runAll1 fails, we only need to execute the test cases in runAll1 locally to identify the issue, rather than needing to execute runAll2.

@yangby-cryptape
Copy link
Collaborator Author

yangby-cryptape commented Nov 20, 2023

We have previously discussed that the openzeppelin-contracts are divided into different parts for parallel execution, ... ...

I didn't say I wanted to let all tests ran in one step.

But current groups are meaningless.

When a test fails, do you know which component or feature may have been affected?

When I submit a PR and select which CI checks are required, I want to select them by component or feature, not by a meaningless number.

I want to run checks for mempool, for network or for consensus, not for part 3, part 8 or part 15.


As an example, can you tell me, when I should select OCT 6-10 only and when I should select OCT 1-5 And 12-15 only?

Do these options have any meaning for authors of PRs?

  • OCT 1-5 And 12-15
  • OCT 6-10
  • OCT 11
  • OCT 16-19

CI Description

CI Name Description
OCT 1-5 | 6-10 | 11 | 12-15 | 16-19 Run the compatibility tests provided by OpenZeppelin

@Flouse Flouse mentioned this issue Nov 30, 2023
6 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P-Low Priority
Projects
None yet
Development

No branches or pull requests

2 participants