Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
180 changes: 158 additions & 22 deletions .github/workflows/appsignals-e2e-gamma-test.yml
Original file line number Diff line number Diff line change
@@ -1,33 +1,169 @@
## Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
## SPDX-License-Identifier: Apache-2.0

## This workflow aims to run the Application Signals end-to-end tests as a canary to
## test the artifacts for App Signals enablement. It will deploy a sample app and remote
## service onto an EKS cluster, call the APIs, and validate the generated telemetry,
## including logs, metrics, and traces.
name: App Signals Enablement - E2E Gamma Stage Testing
name: Resource Attributes Test
on:
workflow_dispatch: # be able to run the workflow on demand

concurrency:
group: ${{ github.workflow }}
cancel-in-progress: false
workflow_dispatch:

permissions:
id-token: write
contents: read

jobs:
e2e-eks-test:
uses: ./.github/workflows/appsignals-e2e-eks-test.yml
java-ec2-default-e2e-test:
uses: ./.github/workflows/java-ec2-default-test.yml
secrets: inherit
with:
aws-region: us-east-1
caller-workflow-name: 'test'

java-ec2-asg-e2e-test:
uses: ./.github/workflows/java-ec2-asg-test.yml
secrets: inherit
with:
aws-region: us-east-1
caller-workflow-name: 'test'

java-k8s-e2e-test:
uses: ./.github/workflows/java-k8s-test.yml
secrets: inherit
with:
aws-region: us-east-1
caller-workflow-name: 'test'

python-ec2-default-e2e-test:
uses: ./.github/workflows/python-ec2-default-test.yml
secrets: inherit
with:
aws-region: us-east-1
caller-workflow-name: 'test'

python-ec2-asg-e2e-test:
uses: ./.github/workflows/python-ec2-asg-test.yml
secrets: inherit
with:
aws-region: us-east-1
caller-workflow-name: 'test'

python-k8s-e2e-test:
needs: [ java-k8s-e2e-test ]
uses: ./.github/workflows/python-k8s-test.yml
secrets: inherit
with:
aws-region: us-east-1
caller-workflow-name: 'test'

node-ec2-default-e2e-test:
uses: ./.github/workflows/node-ec2-default-test.yml
secrets: inherit
with:
aws-region: us-east-1
caller-workflow-name: 'test'

node-ec2-asg-e2e-test:
uses: ./.github/workflows/node-ec2-asg-test.yml
secrets: inherit
with:
aws-region: us-east-1
caller-workflow-name: 'test'

node-k8s-e2e-test:
needs: [ python-k8s-e2e-test ]
uses: ./.github/workflows/node-k8s-test.yml
secrets: inherit
with:
aws-region: us-east-1
caller-workflow-name: 'test'

dotnet-ec2-default-v8-e2e-test:
uses: ./.github/workflows/dotnet-ec2-default-test.yml
secrets: inherit
with:
aws-region: us-east-1
caller-workflow-name: 'test'
dotnet-version: '8.0'

dotnet-ec2-windows-e2e-test:
uses: ./.github/workflows/dotnet-ec2-windows-test.yml
secrets: inherit
with:
aws-region: us-east-1
caller-workflow-name: 'test'

dotnet-k8s-e2e-test:
needs: [ node-k8s-e2e-test ]
uses: ./.github/workflows/dotnet-k8s-test.yml
secrets: inherit
with:
aws-region: us-east-1
caller-workflow-name: 'test'

dotnet-ec2-adot-sigv4-test:
uses: ./.github/workflows/dotnet-ec2-adot-sigv4-test.yml
secrets: inherit
with:
caller-workflow-name: 'test'

dotnet-ec2-asg-test:
uses: ./.github/workflows/dotnet-ec2-asg-test.yml
secrets: inherit
with:
aws-region: us-east-1
caller-workflow-name: 'test'

dotnet-ec2-nuget-test:
uses: ./.github/workflows/dotnet-ec2-nuget-test.yml
secrets: inherit
with:
aws-region: us-east-1
caller-workflow-name: 'test'

dotnet-lambda-test:
uses: ./.github/workflows/dotnet-lambda-test.yml
secrets: inherit
with:
aws-region: us-east-1
caller-workflow-name: 'test'

java-ec2-adot-sigv4-test:
uses: ./.github/workflows/java-ec2-adot-sigv4-test.yml
secrets: inherit
with:
caller-workflow-name: 'test'

java-ec2-ubuntu-test:
uses: ./.github/workflows/java-ec2-ubuntu-test.yml
secrets: inherit
with:
aws-region: us-east-1
caller-workflow-name: 'test'

java-lambda-test:
uses: ./.github/workflows/java-lambda-test.yml
secrets: inherit
with:
aws-region: 'us-east-1'
test-cluster-name: 'e2e-canary-test'
caller-workflow-name: 'appsignals-e2e-gamma-test'
e2e-ec2-test:
uses: ./.github/workflows/appsignals-e2e-ec2-test.yml
aws-region: us-east-1
caller-workflow-name: 'test'

node-ec2-adot-sigv4-test:
uses: ./.github/workflows/node-ec2-adot-sigv4-test.yml
secrets: inherit
with:
aws-region: 'us-east-1'
caller-workflow-name: 'appsignals-e2e-gamma-test'
caller-workflow-name: 'test'

# node-lambda-test
# uses: ./.github/workflows/node-lambda-test.yml
# secrets: inherit
# with:
# aws-region: us-east-1
# caller-workflow-name: 'test'

# python-ec2-adot-sigv4-test
# uses: ./.github/workflows/python-ec2-adot-sigv4-test.yml
# secrets: inherit
# with:
# caller-workflow-name: 'test'

# python-lambda-test
# uses: ./.github/workflows/python-lambda-test.yml
# secrets: inherit
# with:
# aws-region: us-east-1
# caller-workflow-name: 'test'
9 changes: 8 additions & 1 deletion .github/workflows/dotnet-ec2-adot-sigv4-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@ on:
required: false
default: 'aws-opentelemetry-distro'
type: string
sample-app-bucket-prefix:
description: "Prefix for S3 bucket holding sample app files"
required: false
default: 'aws-appsignals-sample-app-prod'
type: string

permissions:
id-token: write
Expand All @@ -30,7 +35,8 @@ env:
E2E_TEST_ACCOUNT_ID: ${{ secrets.APPLICATION_SIGNALS_E2E_TEST_ACCOUNT_ID }}
E2E_TEST_ROLE_NAME: ${{ secrets.APPLICATION_SIGNALS_E2E_TEST_ROLE_NAME }}
DOTNET_VERSION: ${{ inputs.dotnet-version }}
SAMPLE_APP_ZIP: s3://aws-appsignals-sample-app-prod-us-east-1/dotnet-sample-app-${{ inputs.dotnet-version }}.zip
SAMPLE_APP_ZIP: s3://${{ inputs.sample-app-bucket-prefix }}-us-east-1/dotnet-sample-app-${{ inputs.dotnet-version }}.zip
TRAFFIC_GENERATOR_ZIP: s3://${{ inputs.sample-app-bucket-prefix }}-us-east-1/traffic-generator.zip
METRIC_NAMESPACE: ApplicationSignals
LOG_GROUP_NAME: aws/spans
ADOT_DISTRO_NAME: ${{ inputs.staging_distro_name }}
Expand Down Expand Up @@ -113,6 +119,7 @@ jobs:
-var="sample_app_zip=${{ env.SAMPLE_APP_ZIP }}" \
-var="get_adot_distro_command=${{ env.GET_ADOT_DISTRO_COMMAND }}" \
-var="language_version=${{ env.DOTNET_VERSION }}" \
-var="traffic_generator_zip=s3://${{ env.TRAFFIC_GENERATOR_ZIP }}" \
|| deployment_failed=$?

if [ $deployment_failed -eq 1 ]; then
Expand Down
9 changes: 8 additions & 1 deletion .github/workflows/dotnet-ec2-asg-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ on:
caller-workflow-name:
required: true
type: string
sample-app-bucket-prefix:
description: "Prefix for S3 bucket holding sample app files"
required: false
default: 'aws-appsignals-sample-app-prod'
type: string
outputs:
job-started:
value: ${{ jobs.dotnet-ec2-asg.outputs.job-started }}
Expand All @@ -32,7 +37,8 @@ env:
E2E_TEST_AWS_REGION: ${{ inputs.aws-region }}
E2E_TEST_ACCOUNT_ID: ${{ secrets.APPLICATION_SIGNALS_E2E_TEST_ACCOUNT_ID }}
E2E_TEST_ROLE_NAME: ${{ secrets.APPLICATION_SIGNALS_E2E_TEST_ROLE_NAME }}
SAMPLE_APP_ZIP: s3://aws-appsignals-sample-app-prod-${{ inputs.aws-region }}/dotnet-sample-app.zip
SAMPLE_APP_ZIP: s3://${{ inputs.sample-app-bucket-prefix }}-${{ inputs.aws-region }}/dotnet-sample-app.zip
TRAFFIC_GENERATOR_ZIP: s3://${{ inputs.sample-app-bucket-prefix }}-${{ inputs.aws-region }}/traffic-generator.zip
METRIC_NAMESPACE: ApplicationSignals
LOG_GROUP_NAME: /aws/application-signals/data
ADOT_DISTRO_NAME: ${{ inputs.staging_distro_name }}
Expand Down Expand Up @@ -140,6 +146,7 @@ jobs:
-var="sample_app_zip=${{ env.SAMPLE_APP_ZIP }}" \
-var="get_cw_agent_rpm_command=${{ env.GET_CW_AGENT_RPM_COMMAND }}" \
-var="get_adot_distro_command=${{ env.GET_ADOT_DISTRO_COMMAND }}" \
-var="traffic_generator_zip=s3://${{ env.TRAFFIC_GENERATOR_ZIP }}" \
|| deployment_failed=$?

if [ $deployment_failed -eq 1 ]; then
Expand Down
9 changes: 8 additions & 1 deletion .github/workflows/dotnet-ec2-default-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,11 @@ on:
required: false
type: string
default: '8.0'
sample-app-bucket-prefix:
description: "Prefix for S3 bucket holding sample app files"
required: false
default: 'aws-appsignals-sample-app-prod'
type: string
outputs:
job-started:
value: ${{ jobs.dotnet-ec2-default.outputs.job-started }}
Expand All @@ -38,7 +43,8 @@ env:
E2E_TEST_ACCOUNT_ID: ${{ secrets.APPLICATION_SIGNALS_E2E_TEST_ACCOUNT_ID }}
E2E_TEST_ROLE_NAME: ${{ secrets.APPLICATION_SIGNALS_E2E_TEST_ROLE_NAME }}
DOTNET_VERSION: ${{ inputs.dotnet-version }}
SAMPLE_APP_ZIP: s3://aws-appsignals-sample-app-prod-${{ inputs.aws-region }}/dotnet-sample-app-${{ inputs.dotnet-version }}.zip
SAMPLE_APP_ZIP: s3://${{ inputs.sample-app-bucket-prefix }}-${{ inputs.aws-region }}/dotnet-sample-app-${{ inputs.dotnet-version }}.zip
TRAFFIC_GENERATOR_ZIP: s3://${{ inputs.sample-app-bucket-prefix }}-${{ inputs.aws-region }}/traffic-generator.zip
METRIC_NAMESPACE: ApplicationSignals
LOG_GROUP_NAME: /aws/application-signals/data
ADOT_DISTRO_NAME: ${{ inputs.staging_distro_name }}
Expand Down Expand Up @@ -145,6 +151,7 @@ jobs:
-var="aws_region=${{ env.E2E_TEST_AWS_REGION }}" \
-var="test_id=${{ env.TESTING_ID }}" \
-var="sample_app_zip=${{ env.SAMPLE_APP_ZIP }}" \
-var="traffic_generator_zip=s3://${{ env.TRAFFIC_GENERATOR_ZIP }}" \
-var="get_cw_agent_rpm_command=${{ env.GET_CW_AGENT_RPM_COMMAND }}" \
-var="get_adot_distro_command=${{ env.GET_ADOT_DISTRO_COMMAND }}" \
-var="language_version=${{ env.DOTNET_VERSION }}" \
Expand Down
9 changes: 8 additions & 1 deletion .github/workflows/dotnet-ec2-nuget-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ on:
caller-workflow-name:
required: true
type: string
sample-app-bucket-prefix:
description: "Prefix for S3 bucket holding sample app files"
required: false
default: 'aws-appsignals-sample-app-prod'
type: string
outputs:
job-started:
value: ${{ jobs.dotnet-ec2-nuget.outputs.job-started }}
Expand All @@ -32,7 +37,8 @@ env:
E2E_TEST_AWS_REGION: ${{ inputs.aws-region }}
E2E_TEST_ACCOUNT_ID: ${{ secrets.APPLICATION_SIGNALS_E2E_TEST_ACCOUNT_ID }}
E2E_TEST_ROLE_NAME: ${{ secrets.APPLICATION_SIGNALS_E2E_TEST_ROLE_NAME }}
SAMPLE_APP_ZIP: s3://aws-appsignals-sample-app-prod-${{ inputs.aws-region }}/dotnet-sample-app.zip
SAMPLE_APP_ZIP: s3://${{ inputs.sample-app-bucket-prefix }}-${{ inputs.aws-region }}/dotnet-sample-app.zip
TRAFFIC_GENERATOR_ZIP: s3://${{ inputs.sample-app-bucket-prefix }}-${{ inputs.aws-region }}/traffic-generator.zip
METRIC_NAMESPACE: ApplicationSignals
LOG_GROUP_NAME: /aws/application-signals/data
ADOT_DISTRO_NAME: ${{ inputs.staging_distro_name }}
Expand Down Expand Up @@ -129,6 +135,7 @@ jobs:
-var="aws_region=${{ env.E2E_TEST_AWS_REGION }}" \
-var="test_id=${{ env.TESTING_ID }}" \
-var="sample_app_zip=${{ env.SAMPLE_APP_ZIP }}" \
-var="traffic_generator_zip=s3://${{ env.TRAFFIC_GENERATOR_ZIP }}" \
-var="get_cw_agent_rpm_command=${{ env.GET_CW_AGENT_RPM_COMMAND }}" \
|| deployment_failed=$?

Expand Down
8 changes: 7 additions & 1 deletion .github/workflows/dotnet-ec2-windows-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ on:
caller-workflow-name:
required: true
type: string
sample-app-bucket-prefix:
description: "Prefix for S3 bucket holding sample app files"
required: false
default: 'aws-appsignals-sample-app-prod'
type: string
outputs:
job-started:
value: ${{ jobs.dotnet-ec2-windows.outputs.job-started }}
Expand All @@ -32,7 +37,7 @@ env:
E2E_TEST_AWS_REGION: ${{ inputs.aws-region }}
E2E_TEST_ACCOUNT_ID: ${{ secrets.APPLICATION_SIGNALS_E2E_TEST_ACCOUNT_ID }}
E2E_TEST_ROLE_NAME: ${{ secrets.APPLICATION_SIGNALS_E2E_TEST_ROLE_NAME }}
SAMPLE_APP_ZIP: "aws s3 cp s3://aws-appsignals-sample-app-prod-${{ inputs.aws-region }}/dotnet-sample-app.zip ./dotnet-sample-app.zip"
SAMPLE_APP_ZIP: "aws s3 cp s3://${{ inputs.sample-app-bucket-prefix }}-${{ inputs.aws-region }}/dotnet-sample-app.zip ./dotnet-sample-app.zip"
METRIC_NAMESPACE: ApplicationSignals
LOG_GROUP_NAME: /aws/application-signals/data
ADOT_DISTRO_NAME: ${{ inputs.staging_distro_name }}
Expand Down Expand Up @@ -140,6 +145,7 @@ jobs:
-var="sample_app_zip=${{ env.SAMPLE_APP_ZIP }}" \
-var="get_cw_agent_msi_command=${{ env.GET_CW_AGENT_MSI_COMMAND }}" \
-var="get_adot_distro_command=${{ env.GET_ADOT_DISTRO_COMMAND }}" \
-var="sample_app_bucket_prefix=${{ inputs.sample-app-bucket-prefix }}" \
|| deployment_failed=$?

if [ $deployment_failed -eq 1 ]; then
Expand Down
16 changes: 11 additions & 5 deletions .github/workflows/dotnet-k8s-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,11 @@ on:
cw-agent-operator-tag:
required: false
type: string
sample-app-bucket-prefix:
description: "Prefix for S3 bucket holding sample app files"
required: false
default: 'aws-appsignals-sample-app-prod'
type: string
outputs:
job-started:
value: ${{ jobs.dotnet-k8s.outputs.job-started }}
Expand Down Expand Up @@ -117,8 +122,8 @@ jobs:
sed -i 's#\${IMAGE}#${{ env.ACCOUNT_ID }}.dkr.ecr.${{ env.E2E_TEST_AWS_REGION }}.amazonaws.com/${{ env.DOTNET_MAIN_SAMPLE_APP_IMAGE }}#' dotnet-frontend-service-depl.yaml
sed -i 's#\${TESTING_ID}#${{ env.TESTING_ID }}#' dotnet-remote-service-depl.yaml
sed -i 's#\${IMAGE}#${{ env.ACCOUNT_ID }}.dkr.ecr.${{ env.E2E_TEST_AWS_REGION }}.amazonaws.com/${{ env.DOTNET_REMOTE_SAMPLE_APP_IMAGE }}#' dotnet-remote-service-depl.yaml
aws s3api put-object --bucket aws-appsignals-sample-app-prod-${{ env.E2E_TEST_AWS_REGION }} --key dotnet-frontend-service-depl-${{ env.TESTING_ID }}.yaml --body dotnet-frontend-service-depl.yaml
aws s3api put-object --bucket aws-appsignals-sample-app-prod-${{ env.E2E_TEST_AWS_REGION }} --key dotnet-remote-service-depl-${{ env.TESTING_ID }}.yaml --body dotnet-remote-service-depl.yaml
aws s3api put-object --bucket ${{ inputs.sample-app-bucket-prefix }}-${{ env.E2E_TEST_AWS_REGION }} --key dotnet-frontend-service-depl-${{ env.TESTING_ID }}.yaml --body dotnet-frontend-service-depl.yaml
aws s3api put-object --bucket ${{ inputs.sample-app-bucket-prefix }}-${{ env.E2E_TEST_AWS_REGION }} --key dotnet-remote-service-depl-${{ env.TESTING_ID }}.yaml --body dotnet-remote-service-depl.yaml

- name: Set up terraform
uses: ./.github/workflows/actions/execute_and_retry
Expand Down Expand Up @@ -156,7 +161,8 @@ jobs:
-var="host=${{ env.MAIN_SERVICE_ENDPOINT }}" \
-var="repository=${{ github.event.repository.name }}" \
-var="patch_image_arn=${{ env.PATCH_IMAGE_ARN }}" \
-var="release_testing_ecr_account=${{ env.RELEASE_TESTING_ECR_ACCOUNT }}"
-var="release_testing_ecr_account=${{ env.RELEASE_TESTING_ECR_ACCOUNT }}" \
-var="sample_app_bucket_prefix=${{ inputs.sample-app-bucket-prefix }}"

- name: Get Main and Remote Service IP
run: |
Expand Down Expand Up @@ -275,5 +281,5 @@ jobs:
if: always()
continue-on-error: true
run: |
aws s3api delete-object --bucket aws-appsignals-sample-app-prod-${{ env.E2E_TEST_AWS_REGION }} --key dotnet-frontend-service-depl-${{ env.TESTING_ID }}.yaml
aws s3api delete-object --bucket aws-appsignals-sample-app-prod-${{ env.E2E_TEST_AWS_REGION }} --key dotnet-remote-service-depl-${{ env.TESTING_ID }}.yaml
aws s3api delete-object --bucket ${{ inputs.sample-app-bucket-prefix }}-${{ env.E2E_TEST_AWS_REGION }} --key dotnet-frontend-service-depl-${{ env.TESTING_ID }}.yaml
aws s3api delete-object --bucket ${{ inputs.sample-app-bucket-prefix }}-${{ env.E2E_TEST_AWS_REGION }} --key dotnet-remote-service-depl-${{ env.TESTING_ID }}.yaml
Loading
Loading