ci: do a full cron build every day, and limit builds per push or pr#15839
Conversation
|
I need feedback on what platforms to build for each push/pull request, and also what time the cron job should run. |
|
I talked with @icculus, and we want to switch the level 1 canary build to "Android (Android.mk)" and move the Haiku build into level 2. From level 2, these seem like priorities to me and should run on every commit:
Everything else can run once a day, and I don't have a strong preference as to when. |
|
If it's complicated to split the Emscripten build into test / no-test, then we can leave it running tests for now. |
| if not filters: | ||
| if args.priority_only: | ||
| filters.extend(spec_id for spec_id, spec in JOB_SPECS.items() if spec.priority) | ||
| elif not filters: |
There was a problem hiding this comment.
Should this check for filters first before args.priority_only?
There was a problem hiding this comment.
Indeed. If you add [sdl-ci-filter], you don't need the "priority platforms".
(btw, I'm open to a better naming instead of "priority". It's a bit opinionated.)
ba8cdf3 to
7e4ed32
Compare
|
totally novice on that, can we have an example of thanks, |
I disabled building and running the emscripten tests for non-priority emscripten builds. |
By using sdl-ci-filter syntax, you can still force certain platforms.
level1 contains the smoke test, level2 the rest. It's just a name with gaming in mind.
The options are documented here. If you want to run ci for all Android platforms, you'd then add the following to your last commit message: |
|
@madebr level 1, only android (I understand that all others (like 50 builds ) are now build only once a day) You talk about "smoke test", but this is usually a run of executable ? Could we run automatically run testautomation ? or "./testsprite --quit-after-ms 1000 " |
Indeed, there's no difference.
In the context of SDL, it means "Can SDL be built? Doesn't the commit contain breaking typos and/or bugs?"
ci runs all tests marked as --- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -461,7 +461,7 @@ if(EMSCRIPTEN)
endif()
add_sdl_test_executable(testshape NEEDS_RESOURCES SOURCES testshape.c ${glass_png_header} DEPENDS generate-glass_png_header NAME83 shape)
add_sdl_test_executable(testsoftwaretransparent SOURCES testsoftwaretransparent.c NAME83 swtransp)
-add_sdl_test_executable(testsprite MAIN_CALLBACKS NEEDS_RESOURCES TESTUTILS SOURCES testsprite.c NAME83 sprite)
+add_sdl_test_executable(testsprite NONINTERACTIVE NONINTERACTIVE_ARGS --quit-after-ms 200 0NONINTERACTIVE_TIMEOUT 4 MAIN_CALLBACKS NEEDS_RESOURCES TESTUTILS SOURCES testsprite.c NAME83 sprite)
add_sdl_test_executable(testspriteminimal SOURCES testspriteminimal.c ${icon_png_header} DEPENDS generate-icon_png_header NAME83 spritmin)
add_sdl_test_executable(testspritesurface SOURCES testspritesurface.c ${icon_png_header} DEPENDS generate-icon_png_header NAME83 spritsrf)
if(CMAKE_CXX_COMPILER) |
I meant the other way. Run tests during the long build including all platforms, skip them in the quick build for every commit. |
|
We should also include specific platform builds for changes to platform specific files, e.g. run the Vita build for Edit: this can come in a future PR if everyone thinks it's important. It might not be, since presumably you'll be building and testing the changes for the platform you're working on. |
Actually, it looks like you did this, thanks! |
|
Merged, thanks! |
I added a
prioritykey to.github/workflows/create-test-plan.py.Platforms that have "priority" are built for every commit/pull request.
Platforms that have not are built daily.
By using [sdl-ci-filter ..] in your commit message , you can still force certain platforms in pushes.
Description
Existing Issue(s)
Fixes #6624