[???] Add more automated build and test script#251
[???] Add more automated build and test script#251MartinFlores751 wants to merge 15 commits intoirods:mainfrom
Conversation
|
The script also requires you to run in the same |
MartinFlores751
left a comment
There was a problem hiding this comment.
Pointed out some issues with the script off the top of my head.
| # Source directories | ||
| IRODS_SERV_DIR = IRODS_BASE_DIR / 'irods' | ||
| IRODS_ICOMMANDS_DIR = IRODS_BASE_DIR / 'irods_client_icommands' | ||
| IRODS_PLUGINS_SRC_DIR = IRODS_BASE_DIR # / 'plugins' |
There was a problem hiding this comment.
Remove comment.
| named_args.append(('--plugin-package-directory', str(IRODS_PLUGIN_PACKAGE_DIR).format(os_name=os_choice, short_plugin_name=plugin_name))) | ||
| elif desired_test.stem == 'run_core_tests': | ||
| num_executors = int(input('How many test executors do you want? ')) | ||
| named_args.append(('--concurrent-test-executor-count', str(num_executors))) | ||
| elif desired_test.stem == 'run_topology_tests': | ||
| num_executors = int(input('How many test executors do you want? ')) | ||
| named_args.append(('--concurrent-test-executor-count', str(num_executors))) |
There was a problem hiding this comment.
Noting here, but it applies elsewhere, we should separate the interactive part so the validation/work can be entirely separate from the prompts.
There was a problem hiding this comment.
This will be made into a separate issue.
There was a problem hiding this comment.
Document any exceptions that still need to be handled for future issues.
- Failure to find SHA
|
In general... i think a standard/assumed/prescriptive directory structure will cut down on much confusion. |
| @@ -0,0 +1,832 @@ | |||
| #! /usr/bin/env python3 | |||
There was a problem hiding this comment.
please add words about expected inputs and outputs for this script.
There was a problem hiding this comment.
Is it okay to put this in a --help, or should it (also) be here at the top?
There was a problem hiding this comment.
--help is fine. easy to copy/paste to the most helpful place later, as long as it exists.
Or... we make a way to configure it, at least in part. I keep all my packages in a mount point to my spinning disk to prevent filling up my SSD, so being able to move around the base directory would be very helpful. I guess I could also just, y'know, modify the file. But that's annoying. :) |
yes, the location itself should be configurable... but the directory structure within... i think we should strongly consider 'fixing' to the one-true-way. |
alanking
left a comment
There was a problem hiding this comment.
I'm glad someone finally got angry enough to make something like this. It was always the objective, just took a while to get here. :)
Definitely going to need to see a demo or some README documentation so I can get a better handle on the big picture.
This PR introduces a script that allows for the automation of building and testing through either a JSON input, or an interactive prompt.
An example of the current structure for building and testing is as follows:
{ "build": [ { "args": ["--ccache", "--enable-address-sanitizer"], "os": "ubuntu-20.04", }, { "args": ["--ninja"], "os": "debian-12", } ], "test": [ { "args": ["--concurrent-test-executor-count", "4", "--discard-logs"], "os": "ubuntu-20.04", "db": "mariadb-10.6", "type": "run_core_tests" }, { "args": ["--concurrent-test-executor-count", "2", "--discard-logs", "--tests", "some.Test.Here"], "os": "ubuntu-20.04", "db": "mariadb-10.6", "type": "run_unit_tests" }, { "args": ["--discard-logs"], "os": "debian-12", "db": "mariadb-10.11", "type": "run_federation_tests" } ] }Some things in this script can be trimmed to be more focused on only building and testing (e.g., cutting the
refresh_*_buliders(...)).This script does assume a certain directory structure. This can be modified, possibly on a per-user basis, but a 'standard' structure might help.
Further comments will be left in code review shortly...