Skip to content

Conversation

@musa-asad
Copy link
Contributor

@musa-asad musa-asad commented Oct 21, 2025

Description of the issue

New workload discovery integration tests are implemented in aws/amazon-cloudwatch-agent-test#608, but there is no mechanism to trigger these tests.

Description of changes

  • Created a dedicated wd-integration-test.yml workflow for Workload Discovery (WD) integration tests
  • Added support for four test job types:
    • EC2LinuxWDIntegrationTest - Base Linux WD tests
    • EC2WindowsWDIntegrationTest - Base Windows WD tests
    • EC2NvidiaLinuxWDIntegrationTest - NVIDIA Linux WD tests
    • EC2NvidiaWindowsWDIntegrationTest - NVIDIA Windows WD tests
  • Implemented test matrix generation for all four WD test variants (base and NVIDIA for both Linux and Windows)
  • Integrated LocalStack start/stop lifecycle management for WD tests
  • Updated build-test-artifacts.yml to support WD test workflow triggering

License

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Requirements

Before commiting your code, please do the following steps.

  1. Run make fmt and make fmt-sh
  2. Run make lint

Integration Tests

To run integration tests against this PR, add the ready for testing label.

@musa-asad musa-asad self-assigned this Oct 21, 2025
@musa-asad musa-asad requested a review from a team as a code owner October 21, 2025 09:57
@musa-asad musa-asad added the ready for testing Indicates this PR is ready for integration tests to run label Oct 21, 2025
@musa-asad musa-asad force-pushed the musa-asad/feature/workload-discovery branch 2 times, most recently from 464860e to dcb9bb7 Compare October 21, 2025 10:10
@musa-asad musa-asad force-pushed the musa-asad/feature/workload-discovery branch from 7d6a7f3 to 0c4c260 Compare October 21, 2025 10:35
@musa-asad musa-asad force-pushed the musa-asad/feature/workload-discovery branch from 0a27ab1 to 10d06a3 Compare October 24, 2025 17:52
lisguo
lisguo previously approved these changes Oct 24, 2025
@musa-asad musa-asad force-pushed the musa-asad/feature/workload-discovery branch 2 times, most recently from fe64d14 to fa76598 Compare October 24, 2025 22:24
@musa-asad musa-asad requested a review from lisguo October 27, 2025 03:40
@musa-asad musa-asad force-pushed the musa-asad/feature/workload-discovery branch 3 times, most recently from 5f9b024 to 2b99647 Compare October 27, 2025 03:48
@musa-asad musa-asad force-pushed the musa-asad/feature/workload-discovery branch from 2b99647 to d08f08e Compare October 27, 2025 03:50
runs-on: ubuntu-latest
outputs:
ec2_linux_wd_matrix: ${{ steps.set-matrix.outputs.ec2_linux_wd_matrix }}
ec2_linux_wd_nvidia_matrix: ${{ steps.set-matrix.outputs.ec2_linux_wd_nvidia_matrix }}
Copy link
Contributor

Choose a reason for hiding this comment

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

why is nvidia different from the regular wd_matrix?

Is it to be distinct with the devices? then maybe it should be device matrix?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Because NVIDIA uses GPU instance types. Other devices may have their own device instance type.

env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

StartWDIntegrationTests:
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: WD isn't very descriptive.

Suggested change
StartWDIntegrationTests:
StartWorkloadDiscoveryIntegrationTests:

echo "ec2_windows_wd_matrix=$(echo $(cat generator/resources/ec2_windows_wd_complete_test_matrix.json))" >> "$GITHUB_OUTPUT"
echo "ec2_windows_wd_nvidia_matrix=$(echo $(cat generator/resources/ec2_windows_wd_nvidia_complete_test_matrix.json))" >> "$GITHUB_OUTPUT"
StartLocalStack:
Copy link
Contributor

Choose a reason for hiding this comment

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

Why do we need a LocalStack for the workload discovery tests?

env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
OutputEnvVariables:
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: Why do we need this? Seems like the jobs should be able to get the variables directly from the inputs/env contexts.

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

Labels

ready for testing Indicates this PR is ready for integration tests to run

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants