23
23
# The precense of this env var is required for use by terraform and AWS CLI commands
24
24
# It is not redundant
25
25
AWS_DEFAULT_REGION : ${{ inputs.aws-region }}
26
- TEST_ACCOUNT : ${{ secrets.APP_SIGNALS_E2E_TEST_ACC }}
27
26
SAMPLE_APP_FRONTEND_SERVICE_JAR : s3://${{ secrets.APP_SIGNALS_E2E_EC2_JAR }}-prod-${{ inputs.aws-region }}/main-service.jar
28
27
SAMPLE_APP_REMOTE_SERVICE_JAR : s3://${{ secrets.APP_SIGNALS_E2E_EC2_JAR }}-prod-${{ inputs.aws-region }}/remote-service.jar
29
- APP_SIGNALS_ADOT_JAR : " https://github.com/aws-observability/aws-otel-java-instrumentation/releases/latest/download/aws-opentelemetry-agent.jar"
30
28
METRIC_NAMESPACE : AppSignals
31
29
LOG_GROUP_NAME : /aws/appsignals/generic
32
- TEST : ${{ inputs.test }}
33
30
GET_ADOT_JAR_COMMAND : " wget -O adot.jar https://github.com/aws-observability/aws-otel-java-instrumentation/releases/latest/download/aws-opentelemetry-agent.jar"
34
31
TEST_RESOURCES_FOLDER : /__w/aws-application-signals-test-framework/aws-application-signals-test-framework
35
32
GET_CW_AGENT_RPM_COMMAND : " wget -O cw-agent.rpm https://amazoncloudwatch-agent-${{ inputs.aws-region }}.s3.${{ inputs.aws-region }}.amazonaws.com/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm"
45
42
fetch-depth : 0
46
43
47
44
- name : Generate testing id
48
- run : echo TESTING_ID="${{ github.run_id }}-${{ github.run_number }}" >> $GITHUB_ENV
45
+ run : echo TESTING_ID="${{ github.job }}-${{ env.AWS_DEFAULT_REGION }}-${{ github. run_id }}-${{ github.run_number }}-${{ github.run_attempt }}" >> $GITHUB_ENV
49
46
50
47
- name : Configure AWS Credentials
51
48
uses : aws-actions/configure-aws-credentials@v4
@@ -57,22 +54,22 @@ jobs:
57
54
uses : aws-actions/aws-secretsmanager-get-secrets@v1
58
55
with :
59
56
secret-ids :
60
- ACCOUNT_ID, region-account/${{ inputs.aws-region }}
57
+ ACCOUNT_ID, region-account/${{ env.AWS_DEFAULT_REGION }}
61
58
62
59
- name : Configure AWS Credentials
63
60
uses : aws-actions/configure-aws-credentials@v4
64
61
with :
65
62
role-to-assume : arn:aws:iam::${{ env.ACCOUNT_ID }}:role/${{ secrets.E2E_TEST_ROLE_ARN }}
66
- aws-region : ${{ inputs.aws-region }}
63
+ aws-region : ${{ env.AWS_DEFAULT_REGION }}
67
64
68
65
- name : Initiate Terraform
69
66
uses : ./.github/workflows/actions/execute_and_retry
70
67
with :
71
- command : " cd ${{ env.TEST_RESOURCES_FOLDER }}/terraform/ec2 && terraform init && terraform validate"
68
+ command : " cd ${{ env.TEST_RESOURCES_FOLDER }}/terraform/java/ ec2 && terraform init && terraform validate"
72
69
cleanup : " rm -rf .terraform && rm -rf .terraform.lock.hcl"
73
70
74
71
- name : Deploy sample app via terraform and wait for endpoint to come online
75
- working-directory : terraform/ec2
72
+ working-directory : terraform/java/ ec2
76
73
run : |
77
74
# Attempt to deploy the sample app on an EC2 instance and wait for its endpoint to come online.
78
75
# There may be occasional failures due to transitivity issues, so try up to 2 times.
84
81
echo "Attempt $retry_counter"
85
82
deployment_failed=0
86
83
terraform apply -auto-approve \
87
- -var="aws_region=${{ inputs.aws-region }}" \
84
+ -var="aws_region=${{ env.AWS_DEFAULT_REGION }}" \
88
85
-var="test_id=${{ env.TESTING_ID }}" \
89
86
-var="sample_app_jar=${{ env.SAMPLE_APP_FRONTEND_SERVICE_JAR }}" \
90
87
-var="sample_remote_app_jar=${{ env.SAMPLE_APP_REMOTE_SERVICE_JAR }}" \
@@ -154,32 +151,30 @@ jobs:
154
151
- name : Get the ec2 instance ami id
155
152
run : |
156
153
echo "EC2_INSTANCE_AMI=$(terraform output ec2_instance_ami)" >> $GITHUB_ENV
157
- working-directory : terraform/ec2
154
+ working-directory : terraform/java/ ec2
158
155
159
156
- name : Get the sample app endpoint
160
157
run : |
161
158
echo "MAIN_SERVICE_ENDPOINT=$(terraform output sample_app_main_service_public_dns):8080" >> $GITHUB_ENV
162
159
echo "REMOTE_SERVICE_IP=$(terraform output sample_app_remote_service_public_ip)" >> $GITHUB_ENV
163
- working-directory : terraform/ec2
160
+ working-directory : terraform/java/ ec2
164
161
165
162
# This steps increases the speed of the validation by creating the telemetry data in advance
166
163
- name : Call all test APIs
167
164
continue-on-error : true
168
165
run : |
169
- curl -S -s http://${{ env.MAIN_SERVICE_ENDPOINT }}/outgoing-http-call/
170
- curl -S -s http://${{ env.MAIN_SERVICE_ENDPOINT }}/aws-sdk-call/
171
- curl -S -s http://${{ env.MAIN_SERVICE_ENDPOINT }}/remote-service?ip=${{ env.REMOTE_SERVICE_IP }}/
172
- curl -S -s http://${{ env.MAIN_SERVICE_ENDPOINT }}/client-call/
166
+ curl -S -s http://${{ env.MAIN_SERVICE_ENDPOINT }}/outgoing-http-call/; echo
167
+ curl -S -s http://${{ env.MAIN_SERVICE_ENDPOINT }}/aws-sdk-call/; echo
168
+ curl -S -s http://${{ env.MAIN_SERVICE_ENDPOINT }}/remote-service?ip=${{ env.REMOTE_SERVICE_IP }}/; echo
169
+ curl -S -s http://${{ env.MAIN_SERVICE_ENDPOINT }}/client-call/; echo
173
170
174
171
# Validation for pulse telemetry data
175
172
- name : Validate generated EMF logs
176
173
id : log-validation
177
- run : ./gradlew validator:run --args='-c ec2/log-validation.yml
178
- --testing-id ${{ env.TESTING_ID }}
174
+ run : ./gradlew validator:run --args='-c java/ec2/log-validation.yml
179
175
--endpoint http://${{ env.MAIN_SERVICE_ENDPOINT }}
180
176
--remote-service-deployment-name ${{ env.REMOTE_SERVICE_IP }}:8080
181
- --region ${{ inputs.aws-region }}
182
- --account-id ${{ env.ACCOUNT_ID }}
177
+ --region ${{ env.AWS_DEFAULT_REGION }}
183
178
--metric-namespace ${{ env.METRIC_NAMESPACE }}
184
179
--log-group ${{ env.LOG_GROUP_NAME }}
185
180
--service-name sample-application-${{ env.TESTING_ID }}
@@ -191,12 +186,10 @@ jobs:
191
186
- name : Validate generated metrics
192
187
id : metric-validation
193
188
if : (success() || steps.log-validation.outcome == 'failure') && !cancelled()
194
- run : ./gradlew validator:run --args='-c ec2/metric-validation.yml
195
- --testing-id ${{ env.TESTING_ID }}
189
+ run : ./gradlew validator:run --args='-c java/ec2/metric-validation.yml
196
190
--endpoint http://${{ env.MAIN_SERVICE_ENDPOINT }}
197
191
--remote-service-deployment-name ${{ env.REMOTE_SERVICE_IP }}:8080
198
- --region ${{ inputs.aws-region }}
199
- --account-id ${{ env.ACCOUNT_ID }}
192
+ --region ${{ env.AWS_DEFAULT_REGION }}
200
193
--metric-namespace ${{ env.METRIC_NAMESPACE }}
201
194
--log-group ${{ env.LOG_GROUP_NAME }}
202
195
--service-name sample-application-${{ env.TESTING_ID }}
@@ -208,11 +201,10 @@ jobs:
208
201
- name : Validate generated traces
209
202
id : trace-validation
210
203
if : (success() || steps.log-validation.outcome == 'failure' || steps.metric-validation.outcome == 'failure') && !cancelled()
211
- run : ./gradlew validator:run --args='-c ec2/trace-validation.yml
212
- --testing-id ${{ env.TESTING_ID }}
204
+ run : ./gradlew validator:run --args='-c java/ec2/trace-validation.yml
213
205
--endpoint http://${{ env.MAIN_SERVICE_ENDPOINT }}
214
206
--remote-service-deployment-name ${{ env.REMOTE_SERVICE_IP }}:8080
215
- --region ${{ inputs.aws-region }}
207
+ --region ${{ env.AWS_DEFAULT_REGION }}
216
208
--account-id ${{ env.ACCOUNT_ID }}
217
209
--metric-namespace ${{ env.METRIC_NAMESPACE }}
218
210
--log-group ${{ env.LOG_GROUP_NAME }}
@@ -230,20 +222,20 @@ jobs:
230
222
--metric-name Failure \
231
223
--dimensions repository=${{ github.repository }},branch=${{ github.ref_name }},workflow=${{ inputs.caller-workflow-name }} \
232
224
--value 0.0 \
233
- --region ${{ inputs.aws-region }}
225
+ --region ${{ env.AWS_DEFAULT_REGION }}
234
226
else
235
227
aws cloudwatch put-metric-data --namespace 'ADOT/GitHubActions' \
236
228
--metric-name Failure \
237
229
--dimensions repository=${{ github.repository }},branch=${{ github.ref_name }},workflow=${{ inputs.caller-workflow-name }} \
238
230
--value 1.0 \
239
- --region ${{ inputs.aws-region }}
231
+ --region ${{ env.AWS_DEFAULT_REGION }}
240
232
fi
241
233
242
234
# Clean up Procedures
243
235
- name : Terraform destroy
244
236
if : always()
245
237
continue-on-error : true
246
- working-directory : terraform/ec2
238
+ working-directory : terraform/java/ ec2
247
239
run : |
248
240
terraform destroy -auto-approve \
249
241
-var="test_id=${{ env.TESTING_ID }}"
0 commit comments