-
Notifications
You must be signed in to change notification settings - Fork 1
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
CI configuration file scheduled branch regex #118
Comments
Unrelated but related. I find the behavior of running tests for all branches in the reproducability and qa sections, and only the named branches in the scheduled section confusing Do I have a fix for that? - No :) |
Good point, it isn't consistent. Maybe the section should just be the same as the reproducibility and qa sections and only hold testing configuration for if a test is triggered for that branch/tag. That would mean storing/configuring a list of branches to trigger scheduled tests somewhere. Could add it in the same file, under a different section, e.g. "scheduled_tests": [
"dev-1deg_jra55do_ryf",
],
"scheduled": {
"default": {
"markers": "checksum or checksum_slow or access_om3 or config"
},
"dev-1deg_jra55do_ryf": {
"markers": "checksum or checksum_slow or access_om3 or dev_config"
},
"release-.*": {
"model-config-tests-version": "0.0.12",
"payu-version": "1.1.6"
}
}, Could have scheduled_tests as a Github variable on the model configs repository? It would be easily changed/configured but it is less visible and it might look unwieldy when theres several branches/tags. @CodeGat @aidanheerdegen do you have any ideas? |
I suppose we're going away from scheduled-tests-as-canaries and more towards scheduled-tests-as-default, which is an evolution. I like the JSON snippet you have there - I think it works well. I'd probably move away from using GitHub Maybe there can be two files? |
Yeah, two files would work. I think initially it was in the one file to group all the CI configuration together in one place, but I think having two files would make the distinction quite clear. |
Yes the point of isolating the scheduled tests is to specify exactly what it is run on a schedule. Those tests are designed to check for changes in underlying infrastructure that might change answers. Do we have a specific use-case for why we need to change this functionality? It will help to understand what change is required. |
There's currently a bug in specifying I think we still want that functionality of determining exactly what is run on a schedule. So the idea was if there's some common test settings for "release" branches, they can be stored in |
I think I'd still like some concrete examples to help understand what is required. I think @anton-seaice may have some ideas on this front. |
My main comment is that the current behaviour is that all branches trigger repro and qa tests, but only listed branches trigger scheduled tests is confusing. e.g.
Runs scheduled tests on I guess a likely set of will be something like:
Which currently doesn't work, due to this issue. |
Sorry about the confusion, I just wanted to clarify that default doesn't trigger tests for all "repro" and "qa" branches, it just stores some test-type level defaults for the test configuration - e.g. markers. The logic for triggering a "repro" or "qa" test to run in a PR is embedded in the Github CI workflows, e.g. qa tests run for any branch being merged in "dev-" or "release-". The The difference with "scheduled" section currently, is the workflows parse the branch/tags to run tests from |
@aidanheerdegen suggested it might be worth re-thinking how the scheduled tests are configured. A potential improvement could be to have scheduled tests file ( {
"daily": {
# List of branches/tags to run daily scheduled tests on
},
"weekly": {
# List of branches/tags for weekly scheduled tests
},
"monthly": {
# List of branches/tags for monthly scheduled tests
}
} This would give some flexibility on running scheduled checks, e.g:
The scheduled test configurations (e.g. test markers, payu version) could be moved out of The main question is would having more flexibility around scheduled checks be useful? If so, are there other features/configuration settings that would be useful? Currently to modify the scheduled tests frequency, requires modifying the cron in the workflow file in the model config repository: |
Currently, scheduled tests are defined in the
config/ci.json
file on the main branch of model configuration repositories.When a scheduled test workflow is triggered, it runs a test for every key in the "scheduled" section.
model-config-tests/.github/workflows/config-schedule-1-ci.yml
Lines 19 to 21 in 3306f0a
Initially I think the idea of explicitly listing what branches/tags to run scheduled checks on was to limit the amount of tests and resources used.
Regex is used in "qa" and "reproducibility" checks for branch names to define common test configuration for dev/release branches. Does it make sense to use regex in "scheduled" checks? If "release-.*" was set, should it just store common test configuration, and be ignored when creating a matrix for scheduled tests to run?
The text was updated successfully, but these errors were encountered: