-
Notifications
You must be signed in to change notification settings - Fork 94
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
actions: remote testing functionality #3641
Comments
Seems to me two is enough as testing batch system support is orthogonal to testing remote host support (isn't it?) with separate or shared FS - i.e. no need for the cross combinations.
Presumably you mean duplication of test runs, not duplication of container content? If the tests are quick enough we could run all batch system tests in both contains, and to hell with the duplication. Or we could randomly select half the batch system tests for one container, half for the other (nice side effect, we would eventually pick up unforeseen cross-combination issues, at the cost of perfect reproducibility). |
Sorry, I actually meant duplication in docker files. The remote tests are few and fairly fast so that shouldn't be a major issue. |
Ping @kinow who knows the most. |
Far from it.
I think it would be easier to have separate containers for each batch system, instead of a single container, or containers with more than 1 batch system installed.
There are a few ways of doing that. Some projects use Shell to process a template file and generate the Dockerfile, e.g. php
A few releases ago Docker added a way to use multiple containers together. So there could be some way to package cylc in one container A (using something different than pip, maybe conda, pyinstaller, or rpm), and combine with a container B that is simply using the image of a batch system container; https://docs.docker.com/develop/develop-images/multistage-build/ Something like:
Not sure what approach would be the best, but we can try either and see if that works well on GH Actions I think? |
Removing the question label, time for investigation... |
Putting myself on the ticket as I've made some progress on this.
The platform matrix for tests takes the form: (is_local_platform, batch_system, has_shared_fs, comms_method) Caveats:
|
The four containers in the matrix The batch systems would require one container each but could be based on one of the four "base" images from the matrix above. In practice it may be easier to combine So that leaves us with one image per batch system and one container per logically sensible combination of So far |
Use containers in our GitHub Actions testing workflow to act as remote hosts for testing purposes.
The functional test battery currently supports two types of remote host:
And there are currently two (soon to be three) task communication methods:
zmq
)poll
)ssh+tcp
) - zmq: implement SSH tunnelling #3327That means that to fully test Cylc we need six platforms. These can probably be implemented as two containers (📦) where 📦 2 is a subtle variant of 📦 1.
We currently support 9 batch systems (🧮):
So that leaves us with 2 * 3 * 9 = 54 containers!
Ok, so this is getting a bit nuts, for testing we can probably test all of the batch systems (🧮) in the
remote host
+tcp
image.Questions
The text was updated successfully, but these errors were encountered: