Skip to content

MIDRC-1292 Enable Nextflow tests in Kind CI + test range param + test PV ops - #609

Open
paulineribeyre wants to merge 26 commits into
masterfrom
enable-kind-nextflow
Open

MIDRC-1292 Enable Nextflow tests in Kind CI + test range param + test PV ops#609
paulineribeyre wants to merge 26 commits into
masterfrom
enable-kind-nextflow

Conversation

@paulineribeyre

Copy link
Copy Markdown
Contributor

Link to JIRA ticket if there is one: https://ctds-planx.atlassian.net/browse/MIDRC-1292

Fixed in uc-cdis/gen3-workflow#169

New Features

Breaking Changes

Bug Fixes

Improvements

Dependency updates

Deployment changes

@paulineribeyre
paulineribeyre requested a review from nss10 July 24, 2026 15:56
@github-actions

Copy link
Copy Markdown

The style in this PR agrees with black. ✔️

This formatting comment was generated automatically by a script in uc-cdis/wool.

@github-actions

Copy link
Copy Markdown

Integration Tests

Failed to Prepare CI environment

Please find the Github Action logs here

@github-actions

Copy link
Copy Markdown

Integration Tests

Test summary after running integration tests

filepath passed failed SUBTOTAL
tests/test_gen3_workflow.py 2 1 3
TOTAL 2 1 3

Test summary after rerunning failed integration tests

filepath passed SUBTOTAL
tests/test_gen3_workflow.py 1 1
TOTAL 1 1

Please find the detailed integration test report here

Please find the detailed integration test report after rerunning failed tests here

Please find the Github Action logs here

@github-actions

Copy link
Copy Markdown

Integration Tests on Kind

Test summary after running integration tests

filepath passed failed skipped SUBTOTAL
tests/test_gen3_workflow.py 22 5 2 29
TOTAL 22 5 2 29

Test summary after rerunning failed integration tests

filepath passed SUBTOTAL
tests/test_gen3_workflow.py 5 5
TOTAL 5 5

@github-actions

Copy link
Copy Markdown

Integration Tests

filepath passed SUBTOTAL
tests/test_gen3_workflow.py 3 3
TOTAL 3 3

Please find the detailed integration test report here

Please find the Github Action logs here

@github-actions

Copy link
Copy Markdown

Integration Tests on Kind

Test summary after running integration tests

filepath passed failed skipped SUBTOTAL
tests/test_gen3_workflow.py 1 1 1 3
TOTAL 1 1 1 3

Test summary after rerunning failed integration tests

filepath failed SUBTOTAL
tests/test_gen3_workflow.py 1 1
TOTAL 1 1

@github-actions

Copy link
Copy Markdown

Integration Tests

filepath passed SUBTOTAL
tests/test_gen3_workflow.py 3 3
TOTAL 3 3

Please find the detailed integration test report here

Please find the Github Action logs here

@github-actions

Copy link
Copy Markdown

Integration Tests on Kind

Test summary after running integration tests

filepath passed failed skipped SUBTOTAL
tests/test_gen3_workflow.py 1 1 1 3
TOTAL 1 1 1 3

Test summary after rerunning failed integration tests

filepath failed SUBTOTAL
tests/test_gen3_workflow.py 1 1
TOTAL 1 1

@paulineribeyre paulineribeyre changed the title MIDRC-1292 Enable Nextflow tests in Kind CI MIDRC-1292 Enable Nextflow tests in Kind CI + test_pv_posix_ops Jul 27, 2026
@github-actions

Copy link
Copy Markdown

Integration Tests on Kind

filepath passed skipped SUBTOTAL
tests/test_gen3_workflow.py 28 2 30
TOTAL 28 2 30

@github-actions

Copy link
Copy Markdown

Integration Tests

Test summary after running integration tests

filepath passed failed skipped SUBTOTAL
tests/test_gen3_workflow.py 29 0 1 30
tests/test_oauth2.py 15 0 0 15
tests/test_dicom_viewer.py 4 0 0 4
tests/test_centralized_auth.py 16 0 0 16
tests/test_graph_submit_and_query.py 10 3 1 14
tests/test_audit_service.py 3 0 3 6
tests/test_presigned_url.py 7 0 0 7
tests/test_requestor.py 6 0 0 6
tests/test_drs_endpoint.py 6 0 0 6
tests/test_data_upload.py 8 0 1 9
tests/test_dbgap.py 4 0 1 5
tests/test_user_token.py 5 0 0 5
tests/test_study_viewer.py 3 0 0 3
tests/test_user_data_library.py 2 0 2 4
tests/test_user_login_activation.py 2 0 1 3
tests/test_pfb_export.py 1 0 0 1
tests/test_login_page.py 2 0 0 2
tests/test_guppy_service.py 13 0 0 13
tests/test_discoverypage.py 1 0 0 1
tests/test_register_user.py 2 0 0 2
tests/test_client_credentials.py 1 0 0 1
tests/test_aggregate_mds.py 1 0 0 1
tests/test_gen3_sdk.py 1 0 0 1
tests/test_google_data_access.py 1 0 0 1
tests/test_gen3client.py 1 0 0 1
tests/test_manifest_service.py 1 0 0 1
tests/test_homepage.py 1 0 0 1
tests/test_oidc_client.py 2 0 0 2
tests/test_fence_admin.py 2 0 0 2
tests/test_ras_authn.py 0 0 3 3
tests/test_ras_passport.py 0 0 3 3
tests/test_gen3ff_landing_page.py 0 0 2 2
tests/test_env_sanity.py 0 0 1 1
tests/test_etl.py 0 0 1 1
tests/test_workspace.py 0 1 0 1
TOTAL 150 4 20 174

Test summary after rerunning failed integration tests

filepath passed failed SUBTOTAL
tests/test_graph_submit_and_query.py 2 1 3
tests/test_workspace.py 1 0 1
TOTAL 3 1 4

Please find the detailed integration test report here

Please find the detailed integration test report after rerunning failed tests here

Please find the Github Action logs here

@github-actions

Copy link
Copy Markdown

Integration Tests on Kind

filepath passed skipped SUBTOTAL
tests/test_gen3_workflow.py 28 2 30
TOTAL 28 2 30

@github-actions

Copy link
Copy Markdown

Integration Tests

Test summary after running integration tests

filepath passed failed skipped SUBTOTAL
tests/test_gen3_workflow.py 27 2 1 30
TOTAL 27 2 1 30

Test summary after rerunning failed integration tests

filepath passed failed SUBTOTAL
tests/test_gen3_workflow.py 1 1 2
TOTAL 1 1 2

Please find the detailed integration test report here

Please find the detailed integration test report after rerunning failed tests here

Please find the Github Action logs here

@github-actions

Copy link
Copy Markdown

Integration Tests on Kind

filepath passed skipped SUBTOTAL
tests/test_gen3_workflow.py 28 2 30
TOTAL 28 2 30

@github-actions

Copy link
Copy Markdown

Integration Tests on Kind

filepath passed skipped SUBTOTAL
tests/test_gen3_workflow.py 28 2 30
TOTAL 28 2 30

@github-actions

Copy link
Copy Markdown

Integration Tests

filepath passed skipped SUBTOTAL
tests/test_gen3_workflow.py 29 1 30
TOTAL 29 1 30

Please find the detailed integration test report here

Please find the Github Action logs here

@paulineribeyre paulineribeyre changed the title MIDRC-1292 Enable Nextflow tests in Kind CI + test_pv_posix_ops MIDRC-1292 Enable Nextflow tests in Kind CI + test range param + test PV ops Aug 3, 2026
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown

Integration Tests on Kind

filepath passed skipped SUBTOTAL
tests/test_gen3_workflow.py 28 2 30
TOTAL 28 2 30

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown

Integration Tests

Test summary after running integration tests

filepath passed failed skipped SUBTOTAL
tests/test_gen3_workflow.py 28 1 1 30
TOTAL 28 1 1 30

Test summary after rerunning failed integration tests

filepath passed SUBTOTAL
tests/test_gen3_workflow.py 1 1
TOTAL 1 1

Please find the detailed integration test report here

Please find the detailed integration test report after rerunning failed tests here

Please find the Github Action logs here

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

Integration Tests on Kind

filepath passed skipped SUBTOTAL
tests/test_gen3_workflow.py 28 2 30
TOTAL 28 2 30

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

Integration Tests

filepath passed skipped SUBTOTAL
tests/test_gen3_workflow.py 29 1 30
TOTAL 29 1 30

Please find the detailed integration test report here

Please find the Github Action logs here

@nss10 nss10 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some minor suggestions and questions. PR looks good overall.

else None
)
logger.info(f"S3 {action.upper()} response: {response}")
logger.debug(f"S3 {action.upper()} response: {response}")

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for reducing the clutter in logs. :)

user: str = "main_account",
expected_status=200,
range: str = "",
):

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we add a docstring with Args for this function? Rest of the params are self explanatory, but I don't think range is. And a docstring might be handy for future maintanence!

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, can you keep expected_status as the last argument for the function, to remain consistent with all the other functions?

Comment thread gen3-integration-tests/test_data/gen3_workflow/nextflow.config
print(f"SKIP_BROKEN: {os.environ.get('SKIP_BROKEN')} => {SKIP_BROKEN}")


# Test sequential file writes

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I understand this file is sent to the TES pods to be executed as part of the test, but could you restructure the script to resemble a test suite?

Could each operation be moved into its own function, with all of the functions invoked at the end of the file? If one function fails, the script should continue running the remaining tests while logging which test failed.

I realize the current behavior is essentially binary—all of these tests fail with the S3 CSI driver and pass with S3Files—but organizing the script this way would make it much easier to add new test cases that we want to run on the pods in the future. It would also make the tests more descriptive and ensure that a single failing test does not prevent the remaining tests from running.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's sufficiently self-explanatory and restructuring the script wouldn't help much

  • If the script keeps running if something fails, the TES task will fail to find the output files and will error anyway.
  • The ZIP test is dependent on the other 2 cases
  • I doubt we'll add many more PV posix tests
  • The assertions in the test itself would have to be restructured as well to keep checking other test cases even if a previous assertion fails. I don't think I should spend much more time on this PR if there is no great benefit

Also a regression test for various persistent volumes issues caused by S3-CSI driver
limitations. Fixed by switching PVs to S3Files.
This is written as a single test to keep all the PV-related POSIX issues together, and to
run fewer TES tasks to speed up testing.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is nice thinking :)

expected offset 18154 but got 0" (Victoria's PLP workflow)
Note: unable to reproduce PDF, FastQ and GZ issues at this time.
MIDRC-1278 GZ file input: it works when the input is `s3://{s3_path_prefix}/input.txt.gz`.
We may be able to reproduce the issue by using a presigned URL instead, but that case is

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is true. I only noticed the issue when the gz file is received through presigned url.
DM from a thread with Sairam

Can you try using the gz files by uploading it to your S3 work directory temporarily? Once the ticket is resolved, you would be able to work with pre-signed urls directly.

Comment on lines +1217 to +1218
- Incremental/append writes to files already flushed to S3
Note: unable to reproduce issue at this time

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was happening while writing to log files. When testing victoria's workflow, the output log file only has the first few lines, but every append after that was silently ignored.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Were you not seeing any issue when you tested this 👇 in the script

# Test sequential file writes
with open("output.txt", "w") as f:
f.write("Initial sequential data\n")
if not SKIP_BROKEN:
with open("output.txt", "a") as f:
f.write("Second sequential data\n")

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did. I couldn't reproduce it initially and I think this comment might be out of date

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, it is only reproduced while you are in a directory where the PV is mounted. It is possible that you might've tested in a non PV work dir.

For instance, the default workdir for this image quay.io/cdis/gen3-workflow:integration_tests_dicom_image is /utils, which is out of the PV boundary where sequential writes work just fine.

@paulineribeyre
paulineribeyre requested a review from nss10 August 6, 2026 18:58
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown

Integration Tests on Kind

Test summary after running integration tests

filepath passed failed skipped SUBTOTAL
tests/test_gen3_workflow.py 27 1 2 30
TOTAL 27 1 2 30

Test summary after rerunning failed integration tests

filepath failed SUBTOTAL
tests/test_gen3_workflow.py 1 1
TOTAL 1 1

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown

Integration Tests

Test summary after running integration tests

filepath passed failed skipped SUBTOTAL
tests/test_gen3_workflow.py 28 1 1 30
TOTAL 28 1 1 30

Test summary after rerunning failed integration tests

filepath failed SUBTOTAL
tests/test_gen3_workflow.py 1 1
TOTAL 1 1

Please find the detailed integration test report here

Please find the detailed integration test report after rerunning failed tests here

Please find the Github Action logs here

@github-actions

Copy link
Copy Markdown

Integration Tests on Kind

filepath passed SUBTOTAL
tests/test_gen3_workflow.py 1 1
TOTAL 1 1

@github-actions

Copy link
Copy Markdown

Integration Tests

filepath passed SUBTOTAL
tests/test_gen3_workflow.py 1 1
TOTAL 1 1

Please find the detailed integration test report here

Please find the Github Action logs here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants