-
Notifications
You must be signed in to change notification settings - Fork 198
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
Set up GitHub Actions Workflow for Testing Parsl with Flux #3159
Conversation
Hi @benclifford I've created the CI workflow for testing Flux with Parsl. Initially, the CI failed due to issues with I then added Parsl installation with Kindly review. I am open to any feedback or suggestions for further improvements. |
ok, great. here are some things that I think should happen next in this PR: i) Install the "right" parsl version These Github Actions are run to test specific new versions of parsl that only exist in pull requests. This step in your newly added Actions workflow checks out the correct version of Parsl (with whatever changes the submitter has made):
but later on you install the latest official release of Parsl (as released on Pypi.org), not the version that was checked out from the pull request:
To install the version that is checked out by the checkout step (instead of using the version from Pypi), I think it will be enough to instead call ii) Run some tests to check you installed parsl right. You can check that the basic parsl install worked, before running anything with parsl+flux, with
You might encounter some problems here with stuff not being installed right (missing dependencies, for example) iii) test parsl+flux There's one basic flux test file here
Extras to think about after the above is working, but don't attempt until the basics above work: iv) These tests have a problem that I dislike: if they detect flux is not working, they will not fail (and so CI will not fail, and so developers will not know that flux is no longer being tested). Probably in a separate PR after this PR is done, we can work on changing that behaviour. v) Our other executors, we try to run a big range of general Parsl tests to check that lots of different parsl usage patterns and options work with this executor - that would be a useful thing to add in. If you look in the makefile, you will see various executors tested by running |
Hi @benclifford I've implemented the Following that, I attempted to verify the Parsl installation by running a subset of the test suite as suggested (pytest parsl/tests/ -k "not cleannet" --config parsl/tests/configs/local_threads.py --random-order --durations 10). However, I've encountered a persistent issue where the test fails due to an unrecognized argument I'll be needing your suggestions on potential adjustments or alternative approaches to verify the Parsl installation. Your guidance will be greatly appreciated. |
The implementation for --random-order is installed from a extra pytest plugin module: https://pypi.org/project/pytest-random-order/ that's usually installed as part of the testing requirements... in the main Parsl dev instructions, that happens as part of "make deps", or you could change your test install to |
@benclifford During the CI run, I encountered a test failure in
Upon investigating, I identified that the failure was due to the test expecting an exception when attempting to write to a non-existent directory, but the exception was not raised as expected. Could you please provide some guidance on how you would like me to address this test failure? Should I attempt to modify the test or the underlying functionality to resolve the issue, or is there a different approach you'd prefer? |
that test looks like this problem some people have had on WSL2: #3160 in that test, the assumption is that I think seeing this test break in two different places is good motivation to fix the test - maybe you're interested in a side-quest to fix #3160 (as a separate PR) which would help both the WSL users and this flux testing. |
Okay, l'll take a look |
looks like recent tests are hitting that hang-at-exit problem again. I'll have a look at that right now. |
@benclifford the failing test passed this time. |
yes annoying. but we can merge this PR, and just accept that these tests will sometimes fail this way until someone diagnoses and fixes whatever is broken. so I think if you do the tidyups of messy files in this PR, it would then be ready to merge. |
@benclifford I have removed all the messy files. |
While trying to understand what's happening with hung runs, I realised that this PR does not record test artefacts in the same way that the main github actions workflow does. I put this commit onto my testing branch to capture a test artefact when a run finishes, with the hope that when I later see a hanging run it will give some more clues. Artefacts like this have been really useful for debugging tests in general. You can look in ci.yaml to see what I copied this from |
Hi @benclifford. Are there any updates on this issue? I'd like to begin working on this one. |
@mercybassey you can work on the os x model before this PR #3159 is merged, on another branch - I need to write up an issue for what I discovered with flux. |
.github/workflows/parsl+flux.yaml
Outdated
build: | ||
runs-on: ubuntu-20.04 | ||
permissions: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is now 4 years out of date. Are we interested in using a more recent distro for the test and CI framework?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The flux container image is tagged for jammy
which is the subsequent ubuntu LTS release (22.04). The most recent ubuntu LTS is 24.04 which was released just over a month ago, and it looks like there isn't a flux container for that (on https://hub.docker.com/r/fluxrm/flux-sched/tags).
So I'll upgrade this to 22.04 and see what happens.
…ot the case in environments running as root
…of time is common
I pulled some of the test changes I made here into PR #3483 for merge first separately. |
Description
This pull request introduces a new GitHub Actions workflow aimed at testing Parsl's integration with Flux.
Changed Behaviour
The primary focus of this PR is to enhance Parsl's testing infrastructure by integrating a new GitHub Actions workflow aimed at validating Parsl's compatibility and functionality with Flux.
Fixes
Fixes #2713
Type of change
Choose which options apply, and delete the ones which do not apply.