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

compile_and_test_for_boards: Add no-compile flag #19817

Merged
merged 1 commit into from
Jul 24, 2023

Conversation

MrKevinWeiss
Copy link
Contributor

Contribution description

Since we have a no-test flag that prevents executing tests, I think a no-compile flag is a nice compliment. Why? Well if I want to use this script for running multiple boards at the same time, RIOT is not so great handling parallel compile steps with conflicts on lockfiles happening, mostly due to packages. With this I can compile a list of boards sequentially, then flash and run tests in parallel, skipping the compile step.

Testing procedure

Run the following once to compile and clean:

./dist/tools/compile_and_test_for_board/compile_and_test_for_board.py . native --applications tests/sys/shell --clean-after

Then try to run without the compile step and it should fail due to lack of the binary

./dist/tools/compile_and_test_for_board/compile_and_test_for_board.py . native --applications tests/sys/shell --no-compile

Issues/PRs references

@MrKevinWeiss MrKevinWeiss requested a review from Teufelchen1 July 11, 2023 12:45
@github-actions github-actions bot added the Area: tools Area: Supplementary tools label Jul 11, 2023
@MrKevinWeiss MrKevinWeiss added the CI: skip compile test If set, CI server will run only non-compile jobs, but no compile jobs or their dependent jobs label Jul 11, 2023
@MrKevinWeiss MrKevinWeiss force-pushed the pr/skipcompile branch 2 times, most recently from 13dcd27 to 97bad96 Compare July 11, 2023 12:51
benpicco
benpicco previously approved these changes Jul 11, 2023
@benpicco benpicco dismissed their stale review July 11, 2023 14:54

CI is not happy

Since we have a no-test flag that prevents executing tests, I think
a no-compile flag is a nice compliment. Why? Well if I want to use
this script for running multiple boards at the same time, RIOT is
not so great handling parallel compile steps with conflicts on
lockfiles happening, mostly due to packages. With this I can
compile a list of boards sequentially, then flash and run tests
in parallel, skipping the compile step.
@MrKevinWeiss
Copy link
Contributor Author

I reduced the usage string test requirement to handle difference in newlines/spaces, this should allow us to make it look pretty while still checking things are up-to-date. I also added a negative test to prove it is actually checking it.

Reproducing the usage string in the docstring is also a bit redundant I find but that is another story.

@benpicco benpicco added the CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR label Jul 18, 2023
@benpicco benpicco requested a review from miri64 July 18, 2023 10:49
@riot-ci
Copy link

riot-ci commented Jul 18, 2023

Murdock results

✔️ PASSED

d12d592 compile_and_test_for_boards: Add no-compile flag

Success Failures Total Runtime
1 0 1 01m:05s

Artifacts

@MrKevinWeiss MrKevinWeiss removed the CI: skip compile test If set, CI server will run only non-compile jobs, but no compile jobs or their dependent jobs label Jul 21, 2023
@MrKevinWeiss
Copy link
Contributor Author

bors try

bors bot added a commit that referenced this pull request Jul 21, 2023
@MrKevinWeiss
Copy link
Contributor Author

I am just using this to check some CI issues.

@MrKevinWeiss MrKevinWeiss added the CI: full build disable CI build filter label Jul 21, 2023
@MrKevinWeiss
Copy link
Contributor Author

bor try

@MrKevinWeiss
Copy link
Contributor Author

bors try

@bors
Copy link
Contributor

bors bot commented Jul 21, 2023

try

Already running a review

@bors
Copy link
Contributor

bors bot commented Jul 21, 2023

try

Build succeeded!

The publicly hosted instance of bors-ng is deprecated and will go away soon.

If you want to self-host your own instance, instructions are here.
For more help, visit the forum.

If you want to switch to GitHub's built-in merge queue, visit their help page.

@MrKevinWeiss
Copy link
Contributor Author

bors try

bors bot added a commit that referenced this pull request Jul 21, 2023
@bors
Copy link
Contributor

bors bot commented Jul 21, 2023

try

Build succeeded!

The publicly hosted instance of bors-ng is deprecated and will go away soon.

If you want to self-host your own instance, instructions are here.
For more help, visit the forum.

If you want to switch to GitHub's built-in merge queue, visit their help page.

@benpicco
Copy link
Contributor

bors merge

@bors
Copy link
Contributor

bors bot commented Jul 24, 2023

Build succeeded!

The publicly hosted instance of bors-ng is deprecated and will go away soon.

If you want to self-host your own instance, instructions are here.
For more help, visit the forum.

If you want to switch to GitHub's built-in merge queue, visit their help page.

@bors bors bot merged commit bff7452 into RIOT-OS:master Jul 24, 2023
@MrKevinWeiss MrKevinWeiss deleted the pr/skipcompile branch July 30, 2023 07:21
@MrKevinWeiss
Copy link
Contributor Author

Thanks!

@MrKevinWeiss MrKevinWeiss added this to the Release 2023.10 milestone Nov 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: tools Area: Supplementary tools CI: full build disable CI build filter CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants