Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
164 commits
Select commit Hold shift + click to select a range
79316ea
Dropped .NET 6 E2E Tests (#1672)
AsakerMohd May 7, 2025
2ff20e6
[ApplicationSignals] Support copying resource attributes to metric at…
thpierce May 8, 2025
fbabba1
Update nvidia_smi xml schema (v12) for missing metric (#1679)
movence May 9, 2025
72a0212
Sync OTEL Contrib dependencies to latest 'aws-cwa-dev' branch (#1681)
zhihonl May 12, 2025
1d2903b
Sync otel contrib components (#1684)
lisguo May 14, 2025
3b91f1b
Bump golang.org/x/net from 0.36.0 to 0.38.0 (#1626)
dependabot[bot] May 15, 2025
248cb9b
Add simple TTL for target manager cache (#1678)
jefchien May 15, 2025
f9c10f2
Updated Release Notes for 1.300056.0 (#1686)
movence May 16, 2025
2e9286b
Fix vanity imports in contrib repo (#1692)
lisguo May 19, 2025
b9b5e9f
Fixing terraform for integ tests (#1698)
Paramadon May 21, 2025
c2765b6
[processor/awsentity] Add configurable entity transform option (#1682)
zhihonl May 21, 2025
c244241
Add missing release notes item for documentation purpose (#1687)
movence May 23, 2025
6df1e5a
Update fallback for OTEL config flag (#1697)
jefchien May 27, 2025
dd48cf3
Fix panic under concurrency in application signals processor (#1704)
bjrara May 28, 2025
d28fb91
[translator/awsentity] Allow service and environment configuration fo…
zhihonl May 28, 2025
9415228
Add step to check for `ready for testing` label before running integr…
TravisStark May 29, 2025
9e35cb5
fix concurrent map write crash in getDests (#1707)
chadpatel Jun 2, 2025
fd0e334
Centralize log state management into shared package (#1701)
jefchien Jun 3, 2025
e9d1d88
Migrate to Windows 2022 for PR builds (#1716)
duhminick Jun 3, 2025
8ad482f
Update CW and CWL SDK (#1708)
duhminick Jun 3, 2025
265291a
Create Github Action to validate PR Test success (#1715)
TravisStark Jun 6, 2025
5ef3dba
Add ready for testing label instructions to PR template (#1720)
TravisStark Jun 9, 2025
5715f35
Add support for range state management (#1718)
jefchien Jun 10, 2025
6f37dec
Add support for deployment.environment.name (#1722)
thpierce Jun 11, 2025
b145032
Go bump 1.24.4 (#1725)
lisguo Jun 13, 2025
47683ec
Add default TLS client cert and key paths for Prometheus input and re…
musa-asad Jun 13, 2025
99a1b7d
Otel bump v0.115.0 -> v0.124.1 (#1694)
Paramadon Jun 13, 2025
28285f7
Configure range state management based on concurrency (#1724)
jefchien Jun 13, 2025
66cff51
Improve batching for range state (#1723)
jefchien Jun 13, 2025
89fed6f
Batch DescribeLogGroups calls (#1717)
duhminick Jun 13, 2025
4123ffc
Restore and send gaps (#1721)
duhminick Jun 13, 2025
dc672ff
BugFix: Aggregrate neuroncore utilization across core/device pair (#1…
spanaik Jun 16, 2025
46322ee
Bumping contrib version to prepare for 1.300057 release (#1732)
Paramadon Jun 16, 2025
3da34f5
Updated Release Notes for 1.300057.0 (#1733)
TravisStark Jun 16, 2025
60d103b
[build] Remove BuildMSI-2019 in test-build-docker workflow (#1734)
lisguo Jun 17, 2025
4b3a200
Update otel contrib dependencies (#1736)
lisguo Jun 18, 2025
de987cd
Restore done callback in log input plugins (#1739)
jefchien Jun 20, 2025
f51a244
Bump github.com/go-viper/mapstructure/v2 from 2.2.1 to 2.3.0 (#1746)
dependabot[bot] Jul 1, 2025
3b339c3
fix tf variable name for k8s version (#1757)
movence Jul 3, 2025
d2bcd98
Re-add commit date to PerformanceTrackingTest and EC2WinPerformanceTest
TravisStark Jul 5, 2025
df626d1
Enable Scheduled Workflow Runs for Build and Test Artifacts (#1765)
okankoAMZ Jul 10, 2025
fe93fdb
Restore and send gaps for Windows events (#1747)
duhminick Jul 14, 2025
7c660ef
Ability to set CollectionRole for Container Insights (#1766)
sky333999 Jul 16, 2025
9f8a2a2
Small refactor for Windows Event Log gap handling (#1777)
duhminick Jul 16, 2025
219783d
Add default log publishing concurrency (#1770)
jefchien Jul 17, 2025
4300f51
[EKS Performance Testing] Implement github action for scaling up and …
JayPolanco Jul 17, 2025
73e3c4c
Adjust log input and output plugins to support 1MB log lines and reso…
TravisStark Jul 4, 2025
6fc3a58
remove truncationSuffix from input plugin
TravisStark Jul 17, 2025
2cba23e
upgrade ebitengine/purego then import the latest contrib (#1778)
movence Jul 17, 2025
3e6dc27
Updated Release Notes for 1.300058.0 (#1780)
movence Jul 17, 2025
a8af9da
Import /internal/aws/metrics from aws otel contrib (#1781)
TravisStark Jul 18, 2025
d705a03
Add windows event id filtering to CWAgent (#1737)
Paamicky Jul 21, 2025
86cdb5e
Implement workflow to install addon/helm on performance cluster (#1786)
JayPolanco Jul 22, 2025
92115e8
Add windows event regex filtering to CWAgent (#1764)
Paamicky Jul 23, 2025
0ed03d7
Fix race conditions in applicationsignals processor (#1758)
bjrara Jul 23, 2025
0fc6a68
Add windows events log filtering to CWAgent configuration wizard (#1774)
Paamicky Jul 25, 2025
bbf21cd
Add mem_shared metric to CloudWatch Agent (#1792)
ola-amr Jul 29, 2025
7215c51
Fix Bugs in ECS Cluster Cleanup Script (#1798)
agarakan Jul 30, 2025
dae12ee
[EKS Scalability Testing] Implement workflows to execute large scale …
JayPolanco Jul 30, 2025
a2fc23a
Delete Clusters with Active Services during ECS Cleanup (#1799)
agarakan Jul 30, 2025
75a6f4b
Auto Cleanup ECS inactive TaskDefs (#1800)
agarakan Jul 31, 2025
e36dc44
Fix flaky concurrency logs test (#1804)
duhminick Aug 1, 2025
0e047b1
Zero-allocation optimization for sendLine and readLine (#1803)
duhminick Aug 4, 2025
6691bf6
Dynamic reader buffer for tail (#1809)
duhminick Aug 5, 2025
fafbe27
Explicitly use windows-2022 for building Win22 docker image (#1811)
dricross Aug 6, 2025
6d5068e
Add aws.remote.resource.account.* attributes to Application Signals E…
bjrara Aug 6, 2025
c815bfc
Adding NVME Instance Store Metrics (#1810)
Paramadon Aug 12, 2025
2da9c43
Update state when batch dropped (#1789)
duhminick Aug 13, 2025
4c3550e
Add UltraServer support for CloudWatch agent (#1571)
petruanica Aug 14, 2025
d7f29b7
Add new Tensor Core and GPU capacity metrics (#1814)
tudor-manea Aug 14, 2025
562f735
Revert "Add default log publishing concurrency (#1770)" (#1819)
jefchien Aug 14, 2025
f37c1d5
Add Neuron Core and EFA capacity metrics (#1820)
sky333999 Aug 15, 2025
20a5257
Update otel contrib dependencies to v0.0.0-20250814150312-af455c29623…
sky333999 Aug 15, 2025
5d06a08
[AppSignal E2E Testing] Validate E2E Tests Are Accounted For (#1806)
jj22ee Aug 15, 2025
417d94b
Updated Release Notes for 1.300059.0 (#1824)
sky333999 Aug 15, 2025
2707e5f
Fix flaky wineventlog gap test (#1822)
duhminick Aug 18, 2025
47e9a5d
Refactor AWS NVMe Scraper for Easier Device Extensibility (#1817)
Paramadon Aug 18, 2025
02dc7b0
Add exponential histogram support to CloudWatch PMD Exporter (#1677)
dricross Aug 20, 2025
e35d2d3
Restart agent on debian package upgrade (#1826)
dricross Aug 20, 2025
6de42cd
[config-wizard] Only include CPU section if requested (#1833)
dricross Aug 22, 2025
78c6faf
Adding Nvme Instance Store and EBS Adoption metrics (#1832)
Paramadon Aug 26, 2025
75b8144
Fixing CWA error_mode bug in addon v4.2.0 (#1837)
Paramadon Aug 26, 2025
dc890fe
Use AL2 as build image for docker image creation (#1838)
dricross Aug 28, 2025
4be1e55
[Bugfix] EMF exporter not handling prometheus config in container env…
movence Sep 3, 2025
ed3141e
Bump Go (#1845)
the-mann Sep 3, 2025
cbee2f0
Revert "Bump Go (#1845)" (#1851)
dricross Sep 5, 2025
70f685e
Bump github.com/go-viper/mapstructure/v2 from 2.3.0 to 2.4.0 (#1831)
dependabot[bot] Sep 8, 2025
431b83a
Introduce shared receiver model for OTLP to avoid port conflicts (#1821)
movence Sep 11, 2025
12cbbb4
Remove stale nightly build links from README (#1857)
jefchien Sep 11, 2025
4d30835
Fix state file truncation detection (#1858)
jefchien Sep 12, 2025
be8b367
Bump minimum go version to 1.24.7 (#1860)
jefchien Sep 12, 2025
2855860
PVs, PVCs and Ingress metrics (#1846)
Sep 15, 2025
a437da8
Refactor helper binaries to save 161MB of disk space when the agent i…
chadpatel Sep 15, 2025
1a221c8
Update contrib components to v0.0.0-20250916160455-365e3e3baf3a (#1865)
sky333999 Sep 16, 2025
65f06c4
Update contrib components to v0.0.0-20250916235509-415059d978ca (#1866)
sky333999 Sep 17, 2025
c84c3df
Updating Release Notes for 1.300060.0 (#1867)
okankoAMZ Sep 17, 2025
aed725a
chore: add more test coverage for application signals e2e (#1856)
bjrara Sep 18, 2025
c345628
Use InDelta for floating point comparisons for Histogram Unittest (#1…
dricross Sep 19, 2025
f33102f
Bump GH runner from macOS 13 to 15 (#1873)
duhminick Sep 22, 2025
9351351
[Bugfix] Fix merging logic to append multiple jvm/otlp configurations…
lisguo Sep 23, 2025
e3c225f
Cloudwatch Agent IPv6 support (#1864) (#1871)
Paramadon Sep 25, 2025
c2483b8
Add RHEL10 OS support (#1880)
varunch77 Sep 29, 2025
041bb7b
Add ubuntu 25 support (#1883)
varunch77 Oct 1, 2025
1bd930e
Add support for Alma 10/Rocky 10/RHEL 9 + remove EOL OSes (#1884)
varunch77 Oct 3, 2025
237e256
Add support for EC2 metadata as dimensions for host metrics (#1876)
lisguo Oct 8, 2025
41fca8d
Re-add RHEL8 to our testing suite (#1887)
varunch77 Oct 9, 2025
aadbc30
Increase ECS github runner timeout to 30 (#1888)
agarakan Oct 10, 2025
913f5a7
Update OpenTelemetry JMX Metric Gatherer JAR to v1.5.0 (#1894)
jefchien Oct 14, 2025
1dc5531
Require ready for testing label in published PR (#1901)
duhminick Oct 15, 2025
2a9eca1
Removing auth-config configmap check for eks detection (#1885)
Paramadon Oct 15, 2025
95fbd16
Support AutoScalingGroup as an append_dimension for host metrics (#1892)
lisguo Oct 15, 2025
0704bcb
Add optional usage metadata (#1904)
jefchien Oct 16, 2025
f5da615
Initial workload discovery framework (#871)
jefchien Sep 22, 2025
33cc4f7
Add Java detector (#872)
jefchien Sep 24, 2025
dc64e9f
Add workload discovery to agent packaging (#876)
jefchien Sep 24, 2025
25dc60e
Add Tomcat detector (#875)
jefchien Sep 26, 2025
166b789
Add Kafka broker detector (#878)
jefchien Sep 26, 2025
bff6e06
Add new action for status with workload discovery data to control scr…
musa-asad Oct 2, 2025
7fe6b47
Add filter for short-lived processes (#879)
jefchien Oct 6, 2025
c92d18f
Implement NVIDIA GPU detector (#877)
musa-asad Oct 8, 2025
b1a5bba
Add test distributor build workflow (#1905)
jefchien Oct 16, 2025
637837b
Address goroutine leak with dynamically determined log destinations (…
dricross Oct 17, 2025
673cb9d
replace log. with fmt. for stderr on windows (#1906)
movence Oct 17, 2025
d962aad
Update RELEASE_NOTES for version 1.300061.0 (#1909)
JayPolanco Oct 17, 2025
6a16e3f
Fallback to iterative DescribeLogGroups if batch not supported (#1915)
duhminick Oct 21, 2025
06ff831
Skip distributor re-build (#1917)
jefchien Oct 22, 2025
4b02bd6
Agent Health Metric for Windows Events Filtering (#1787)
Paamicky Oct 27, 2025
b31cbc0
Fix build-test-artifacts test trigger (#1918)
jefchien Oct 27, 2025
cce26c8
Adding ipv6 to useragent (#1930)
Paramadon Oct 31, 2025
33372c7
fix postinst failure for debian (#1929)
movence Oct 31, 2025
6056d6a
Add Kafka broker attributes extraction (#1927)
jefchien Nov 3, 2025
d70a8bd
Fix OTLP pipeline when used with EKS/ContainerInsights (#1934)
jefchien Nov 3, 2025
9e92874
Add Kafka client detector (#1932)
jefchien Nov 4, 2025
b95d897
Enable opt-in for high frequency GPU metrics (#1893)
yanhaoluo666 Nov 4, 2025
c54dfe4
Update OTel contrib dependencies to v0.0.0-20251103165826-c3d3976f1fa…
sky333999 Nov 4, 2025
0412662
Detect running Java process after update (#1936)
jefchien Nov 4, 2025
fbc0337
Update workflow for workload discovery integration tests (#1916)
musa-asad Nov 5, 2025
5dd56c4
Updated Release Notes for 1.300062.0 (#1938)
duhminick Nov 6, 2025
726d25d
Trigger EKS E2E tests with Build Test Artifacts (#1937)
musa-asad Nov 6, 2025
9f0d902
Improving windows build flakiness (#1931)
Paramadon Nov 14, 2025
90c0151
Refactor Windows Filter flags (#1926)
agarakan Nov 14, 2025
7bf323e
Translate Instance Store NVME EKS metrics (#1943)
agarakan Nov 19, 2025
71bdd66
Update OTel contrib dependencies to v0.0.0-20251120035228-2492d12f5d8…
agarakan Nov 20, 2025
3fe9fa5
Fix regional test failures by using separate keys (#1949)
jefchien Dec 4, 2025
963ad10
Adding IPv6 e2e tests to test workflow (#1950)
Paramadon Dec 8, 2025
c23c155
bump Go to 1.25.5 (#1953)
the-mann Dec 11, 2025
7a52049
Revert "bump Go to 1.25.5" (#1960)
the-mann Dec 11, 2025
65fb1df
Fix GitHub Actions disk space issues (#1954)
the-mann Dec 11, 2025
7ca8d86
Add EFA Metrics to Container Insights (#1941)
the-mann Dec 12, 2025
86f68fb
Fix free-disk-space.sh script path issues in CI workflows (#1961)
the-mann Dec 12, 2025
5901e9b
Updated Release Notes for 1.300063.0 (#1963)
the-mann Dec 15, 2025
651f5f2
Add onprem test back (#1962)
movence Dec 19, 2025
d2e2aa3
Bump github.com/expr-lang/expr from 1.17.2 to 1.17.7 (#1964)
dependabot[bot] Dec 19, 2025
5749e54
Bump linter for go1.25 compatibility. Apply linting fixes (#1849)
dricross Dec 19, 2025
66312a7
Use environment variables for workflow inputs (#1971)
zhihonl Jan 2, 2026
66540c1
Updated Release Notes for 1.300064.0
TravisStark Jan 9, 2026
6d0a789
Update EKS Addon GPU Integ Test GH steps (#1965)
sky333999 Jan 11, 2026
2f6d586
Add slack notification workflow (#1983)
the-mann Jan 15, 2026
a5ad2ae
Fix JSON formatting in Slack notification payload (#1987)
the-mann Jan 16, 2026
c6341af
Use minimally scoped GITHUB_TOKEN Permissions (#1990)
the-mann Jan 21, 2026
1a4b2ce
Fix GPU addon integ test workflow (#1986)
sky333999 Jan 22, 2026
ef6516f
Updated Release Notes for 1.300064.1 (#2003)
mitali-salvi Feb 5, 2026
e41b31c
Add WIP (Work In Progress) test support to allow experimental tests w…
okankoAMZ Feb 6, 2026
8df9d55
Only test linux.
jefchien May 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .github/config/file-filters.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ lint:
- '**/*.sh'
- '.golangci.yml'
- 'packaging/**'
- 'go.mod'
- 'Makefile'

build:
- 'Makefile'
Expand Down
5 changes: 4 additions & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,13 @@ By submitting this pull request, I confirm that you can use, modify, copy, and r
_Describe what tests you have done._

# Requirements
_Before commit the code, please do the following steps._
_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.



14 changes: 14 additions & 0 deletions .github/scripts/free-disk-space.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/bash
set -e

echo "=== Disk usage before cleanup ==="
df -h

echo "=== Freeing up disk space ==="
sudo rm -rf /usr/share/dotnet
sudo rm -rf /usr/local/share/powershell
sudo rm -rf /usr/local/lib/android
sudo rm -rf /opt/ghc

echo "=== Disk usage after cleanup ==="
df -h
54 changes: 47 additions & 7 deletions .github/workflows/PR-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ jobs:
if: needs.changes.outputs.lint == 'true'
uses: actions/setup-go@v4
with:
go-version: ~1.22.2
go-version: ~1.25
cache: false

- name: Check out code
Expand Down Expand Up @@ -78,19 +78,19 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-2019, windows-latest, macos-13]
os: [ubuntu-latest, windows-2022, windows-latest, macos-15]
include:
- os: ubuntu-latest
family: linux
cache-path: |
~/.cache/go-build
~/go/pkg/mod
- os: macos-13
- os: macos-15
family: darwin
cache-path: |
~/Library/Caches/go-build
~/go/pkg/mod
- os: windows-2019
- os: windows-2022
family: windows
cache-path: |
~\AppData\Local\go-build
Expand All @@ -105,13 +105,17 @@ jobs:
if: needs.changes.outputs.build == 'true'
uses: actions/setup-go@v4
with:
go-version: ~1.22.2
go-version: ~1.25
cache: false

- name: Check out code
if: needs.changes.outputs.build == 'true'
uses: actions/checkout@v3

- name: Free up disk space
if: needs.changes.outputs.build == 'true' && matrix.family == 'linux'
run: .github/scripts/free-disk-space.sh

- name: Cache binaries
id: cached_binaries
if: needs.changes.outputs.build == 'true'
Expand Down Expand Up @@ -148,7 +152,7 @@ jobs:
if: needs.changes.outputs.build == 'true'
uses: actions/setup-go@v4
with:
go-version: ~1.22.2
go-version: ~1.25
cache: false

- name: Check out code
Expand All @@ -157,4 +161,40 @@ jobs:

- name: Test data race
if: needs.changes.outputs.build == 'true'
run: make test-data-race
run: make test-data-race

verify-all:
name: Verify All PR Build Jobs
needs: [ changes, lint, build, test-data-race ]
runs-on: ubuntu-latest
if: always()
steps:
- name: Check Job Status
run: |
# Convert needs context to JSON and process with jq
needs_json='${{ toJSON(needs) }}'

failed_jobs=()
successful_jobs=()

# Loop through all jobs in needs context
for job in $(echo "$needs_json" | jq -r 'keys[]'); do
result=$(echo "$needs_json" | jq -r ".[\"$job\"].result")

if [[ "$result" == "failure" ]]; then
failed_jobs+=("$job")
elif [[ "$result" == "success" ]]; then
successful_jobs+=("$job")
fi
done

echo "Successfully validated jobs:"
printf '%s\n' "${successful_jobs[@]}"

if [ ${#failed_jobs[@]} -ne 0 ]; then
echo -e "\nFailed jobs:"
printf '%s\n' "${failed_jobs[@]}"
exit 1
fi

echo -e "\nAll required jobs completed without failures!"
101 changes: 93 additions & 8 deletions .github/workflows/PR-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,30 @@ on:
- synchronize
- reopened
- ready_for_review
- labeled
- unlabeled

concurrency:
group: ${{ github.workflow }}-${{ github.ref_name }}
cancel-in-progress: true

jobs:
CheckLabel:
runs-on: ubuntu-latest
outputs:
should_run: ${{ steps.check.outputs.has_label }}
steps:
- id: check
run: |
if [[ "${{ contains(github.event.pull_request.labels.*.name, 'ready for testing') }}" == "true" ]]; then
echo "has_label=true" >> $GITHUB_OUTPUT
else
echo "has_label=false" >> $GITHUB_OUTPUT
fi

BuildAndUpload:
needs: [ CheckLabel ]
if: needs.CheckLabel.outputs.should_run == 'true'
uses: ./.github/workflows/test-build.yml
secrets: inherit
permissions:
Expand All @@ -43,6 +60,8 @@ jobs:

OutputEnvVariables:
name: 'OutputEnvVariables'
needs: [ CheckLabel ]
if: needs.CheckLabel.outputs.should_run == 'true'
runs-on: ubuntu-latest
outputs:
CWA_GITHUB_TEST_REPO_NAME: ${{ steps.set-outputs.outputs.CWA_GITHUB_TEST_REPO_NAME }}
Expand Down Expand Up @@ -73,11 +92,12 @@ jobs:
- name: Set up Go 1.x
uses: actions/setup-go@v4
with:
go-version: ~1.22.2
go-version: ~1.25

StartLocalStack:
name: 'StartLocalStack'
needs: [OutputEnvVariables]
needs: [ CheckLabel, OutputEnvVariables ]
if: needs.CheckLabel.outputs.should_run == 'true'
uses: ./.github/workflows/start-localstack.yml
secrets: inherit
permissions:
Expand All @@ -93,8 +113,9 @@ jobs:
s3_integration_bucket: ${{ vars.S3_INTEGRATION_BUCKET }}

GenerateTestMatrix:
needs: [OutputEnvVariables]
name: 'GenerateTestMatrix'
needs: [ CheckLabel, OutputEnvVariables ]
if: needs.CheckLabel.outputs.should_run == 'true'
runs-on: ubuntu-latest
outputs:
ec2_linux_matrix: ${{ steps.set-matrix.outputs.ec2_linux_matrix }}
Expand All @@ -109,7 +130,7 @@ jobs:
- name: Set up Go 1.x
uses: actions/setup-go@v4
with:
go-version: ~1.22.2
go-version: ~1.25

- name: Install jq
run: sudo apt-get install -y jq
Expand All @@ -136,9 +157,13 @@ jobs:


EC2LinuxIntegrationTest:
needs: [ GenerateTestMatrix, OutputEnvVariables, StartLocalStack, BuildAndUpload ]
name: 'EC2LinuxTests'
needs: [ CheckLabel, GenerateTestMatrix, OutputEnvVariables, StartLocalStack, BuildAndUpload ]
if: needs.CheckLabel.outputs.should_run == 'true'
uses: ./.github/workflows/ec2-integration-test.yml
permissions:
id-token: write
contents: read
with:
build_id: ${{ github.sha }}
test_dir: terraform/ec2/linux
Expand All @@ -155,9 +180,13 @@ jobs:
secrets: inherit

EC2SELinuxIntegrationTest:
needs: [ GenerateTestMatrix, OutputEnvVariables, StartLocalStack ]
name: 'EC2SELinuxTests'
needs: [ CheckLabel, GenerateTestMatrix, OutputEnvVariables, StartLocalStack, BuildAndUpload ]
if: needs.CheckLabel.outputs.should_run == 'true'
uses: ./.github/workflows/ec2-integration-test.yml
permissions:
id-token: write
contents: read
with:
build_id: ${{ github.sha }}
test_dir: terraform/ec2/linux
Expand All @@ -175,8 +204,8 @@ jobs:

StopLocalStack:
name: 'StopLocalStack'
if: ${{ always() && needs.StartLocalStack.result == 'success' }}
needs: [ StartLocalStack, EC2LinuxIntegrationTest, OutputEnvVariables ]
needs: [ CheckLabel, StartLocalStack, EC2LinuxIntegrationTest, OutputEnvVariables ]
if: ${{ always() && needs.StartLocalStack.result == 'success' && needs.CheckLabel.outputs.should_run == 'true'}}
uses: ./.github/workflows/stop-localstack.yml
secrets: inherit
permissions:
Expand All @@ -189,3 +218,59 @@ jobs:
terraform_assume_role: ${{ vars.TERRAFORM_AWS_ASSUME_ROLE }}
github_sha: ${{ github.sha }}
s3_integration_bucket: ${{ vars.S3_INTEGRATION_BUCKET }}

IntegrationTestGate:
name: Check ready for testing label
runs-on: ubuntu-latest
steps:
- name: Check for ready for testing label
run: |
if [[ "${{ github.event.pull_request.draft }}" == "true" ]]; then
echo "Draft PR - skipping label check."
exit 0
fi

if [[ "${{ contains(github.event.pull_request.labels.*.name, 'ready for testing') }}" != "true" ]]; then
echo "Missing 'ready for testing' label. Please add before merging."
exit 1
fi

echo "'ready for testing' label found!"

verify-all:
name: Verify All PR Test Jobs
needs: [IntegrationTestGate, CheckLabel, BuildAndUpload, OutputEnvVariables, StartLocalStack,
GenerateTestMatrix, EC2LinuxIntegrationTest, EC2SELinuxIntegrationTest,
StopLocalStack]
runs-on: ubuntu-latest
if: always()
steps:
- name: Check Job Status
run: |
# Convert needs context to JSON and process with jq
needs_json='${{ toJSON(needs) }}'

failed_jobs=()
successful_jobs=()

# Loop through all jobs in needs context
for job in $(echo "$needs_json" | jq -r 'keys[]'); do
result=$(echo "$needs_json" | jq -r ".[\"$job\"].result")

if [[ "$result" == "failure" ]]; then
failed_jobs+=("$job")
elif [[ "$result" == "success" ]]; then
successful_jobs+=("$job")
fi
done

echo "Successfully validated jobs:"
printf '%s\n' "${successful_jobs[@]}"

if [ ${#failed_jobs[@]} -ne 0 ]; then
echo -e "\nFailed jobs:"
printf '%s\n' "${failed_jobs[@]}"
exit 1
fi

echo -e "\nAll required jobs completed without failures!"
Loading
Loading