Skip to content

CI: Add AWS EFA testing infrastructure - #212

Merged
yosefe merged 6 commits into
mainfrom
arivkin/aws_tests
May 11, 2025
Merged

yosefe merged 6 commits into
mainfrom
arivkin/aws_tests

Conversation

@Alexey-Rivkin

Copy link
Copy Markdown
Contributor

What?

Add automated testing infrastructure for NIXL on AWS EFA environment via a new contrib/aws-efa/ module and GitHub Actions workflow.

Why?

Ensure NIXL compatibility with AWS EFA environment by:

  • Automate validation for C++ and Python implementations
  • Verify AWS-specific networking features
  • Catche EFA-specific regressions
  • Support both CI and manual testing

How?

Implement:

  • Bash testing script for job management
  • AWS Batch configuration files
  • New GitHub Actions workflow for PRs
  • Testing on NVIDIA PyTorch containers

Comment thread contrib/aws-efa/README.md
Comment thread contrib/aws-efa/aws_test.sh Outdated
@Alexey-Rivkin
Alexey-Rivkin marked this pull request as ready for review April 28, 2025 17:37
@Alexey-Rivkin
Alexey-Rivkin requested a review from a team April 28, 2025 17:37
@tstamler

Copy link
Copy Markdown
Contributor

Hey, this is pretty cool! Just a couple comments:

-We have nixlbench in the main repo now, it would be nice to see it integrated in some configuration (doesn't need to be right now)
-Why are you deleting the pre-commit yaml? Current CI is obviously not going to be happy about that, but maybe you have a plan

@Alexey-Rivkin

Copy link
Copy Markdown
Contributor Author

Hey, this is pretty cool! Just a couple comments:

-We have nixlbench in the main repo now, it would be nice to see it integrated in some configuration (doesn't need to be right now) -Why are you deleting the pre-commit yaml? Current CI is obviously not going to be happy about that, but maybe you have a plan

Hi, thanks for the feedback!
This is still a work in progress - please don't judge (yet).
.pre-commit-config.yaml conflicted with my local one, but I've since realized the mistake and fetched the original.
As for nixlbench, let's have it in a separate PR since this one is already pretty big.

Comment thread contrib/aws-efa/aws_test.sh Outdated
Comment thread contrib/aws-efa/README.md
Comment thread .github/workflows/aws_efa_validation.yml Outdated
Comment thread .github/workflows/aws_efa_validation.yml Outdated
Comment thread .github/workflows/aws_efa_validation.yml Outdated
Comment thread .github/workflows/aws_efa_validation.yml
Comment thread .github/workflows/aws_efa_validation.yml

@pvijayakrish pvijayakrish 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.

PR looks good. Could you please share how the changes are tested and how the results from AWS batch will be reported back?

Introduce new testing capability for AWS Elastic Fabric Adapter
environments through contrib/aws-efa module:
- Shell script for running tests in AWS Batch environments
- Configuration templates for AWS resources
- Job definition for container specification
- Documentation for usage in both CI and manual testing
- Support for both C++ and Python testing"
Create new CI pipeline for AWS EFA validation:
- Triggers on main branch pushes and pull requests
- Runs both C++ and Python test variants
- Uses AWS CLI container for executing tests
- Includes proper credentials handling and cleanup
- Outputs test results for CI verification"
Exclude AWS job definition from copyright header requirements since
AWS Batch job definitions don't support custom fields like "copyright".
Also AWS job definition does not contain proprietary code by any means.
@Alexey-Rivkin

Alexey-Rivkin commented May 8, 2025 •

Copy link
Copy Markdown
Contributor Author

PR looks good. Could you please share how the changes are tested and how the results from AWS batch will be reported back?

Results propagation from AWS

When the pod exits, we poll AWS for exit status. If the final state is FAILED, the script exits non-zero, so Github Actions marks the flow as failed.
On success we exit 0, which lets the workflow turn green.
https://github.com/ai-dynamo/nixl/blob/arivkin/aws_tests/contrib/aws-efa/aws_test.sh#L120-L125

Testing done

The changes are validated through the AWS EFA workflow, which provides end-to-end testing by executing NIXL tests on AWS infrastructure and reporting the results back to GitHub. Negative tests were also conducted to ensure robustness.

This branch was previously deployed

2 inactive deployments
GITLAB — 5c0bf0fc Deployed May 11, 2025 by copy-pr-bot[bot]
SWX_AWS — 5c0bf0fc Deployed May 11, 2025 by copy-pr-bot[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants