44name : Python EC2 Gen AI Use Case
55on :
66 workflow_dispatch : # be able to run the workflow on demand
7- push :
8- branches :
9- - genesis-release-test
107 workflow_call :
118 inputs :
129 caller-workflow-name :
1310 required : true
1411 type : string
15- python-version :
16- description : " Currently support version 3.9, 3.10, 3.11, 3.12, 3.13"
17- required : false
18- type : string
19- default : ' 3.12'
20- cpu-architecture :
21- description : " Permitted values: x86_64 or arm64"
22- required : false
23- type : string
24- default : " x86_64"
2512 staging-wheel-name :
2613 required : false
2714 default : ' aws-opentelemetry-distro'
3522 E2E_TEST_AWS_REGION : ' us-west-2'
3623 E2E_TEST_ACCOUNT_ID : ${{ secrets.APPLICATION_SIGNALS_E2E_TEST_ACCOUNT_ID }}
3724 E2E_TEST_ROLE_NAME : ${{ secrets.APPLICATION_SIGNALS_E2E_TEST_ROLE_NAME }}
38- ADOT_WHEEL_NAME : aws-opentelemetry-distro
39- PYTHON_VERSION : 3.12
25+ ADOT_WHEEL_NAME : ${{ inputs.staging-wheel-name }}
4026 METRIC_NAMESPACE : genesis
4127 LOG_GROUP_NAME : test/genesis
4228 TEST_RESOURCES_FOLDER : ${GITHUB_WORKSPACE}
@@ -50,18 +36,18 @@ jobs:
5036 - uses : actions/checkout@v4
5137
5238 - name : Set Get ADOT Wheel command environment variable
53- run : echo GET_ADOT_WHEEL_COMMAND="aws s3 cp s3://adot-main-build-staging-jar/${{ env.ADOT_WHEEL_NAME }} ./${{ env.ADOT_WHEEL_NAME }} && python${{ env.PYTHON_VERSION }} -m pip install ${{ env.ADOT_WHEEL_NAME }}" >> $GITHUB_ENV
54- # if [ "${{ github.event.repository.name }}" = "aws-otel-python-instrumentation" ]; then
55- # # Reusing the adot-main-build-staging-jar bucket to store the python wheel file
56- # echo GET_ADOT_WHEEL_COMMAND="aws s3 cp s3://adot-main-build-staging-jar/${{ env.ADOT_WHEEL_NAME }} ./${{ env.ADOT_WHEEL_NAME }} && python${{ env.PYTHON_VERSION }} -m pip install ${{ env.ADOT_WHEEL_NAME }}" >> $GITHUB_ENV
57- # elif [ "${{ env.OTEL_SOURCE }}" == "pypi" ]; then
58- # echo GET_ADOT_WHEEL_COMMAND="python${{ env.PYTHON_VERSION }} -m pip install ${{ env.ADOT_WHEEL_NAME }}" >> $GITHUB_ENV
59- # else
60- # latest_release_version=$(curl -sL https://github.com/aws-observability/aws-otel-python-instrumentation/releases/latest | grep -oP '/releases/tag/v\K[0-9]+\.[0-9]+\.[0-9]+' | head -n 1)
61- # echo "The latest version is $latest_release_version"
62- # echo GET_ADOT_WHEEL_COMMAND="wget -O ${{ env.ADOT_WHEEL_NAME }} https://github.com/aws-observability/aws-otel-python-instrumentation/releases/latest/download/aws_opentelemetry_distro-$latest_release_version-py3-none-any.whl \
63- # && python${{ env.PYTHON_VERSION }} -m pip install ${{ env.ADOT_WHEEL_NAME }}" >> $GITHUB_ENV
64- # fi
39+ run : |
40+ if [ "${{ github.event.repository.name }}" = "aws-otel-python-instrumentation" ]; then
41+ # Reusing the adot-main-build-staging-jar bucket to store the python wheel file
42+ echo GET_ADOT_WHEEL_COMMAND="aws s3 cp s3://adot-main-build-staging-jar/${{ env.ADOT_WHEEL_NAME }} ./${{ env.ADOT_WHEEL_NAME }} && python3.12 -m pip install ${{ env.ADOT_WHEEL_NAME }}" >> $GITHUB_ENV
43+ elif [ "${{ env.OTEL_SOURCE }}" == "pypi" ]; then
44+ echo GET_ADOT_WHEEL_COMMAND="python3.12 -m pip install ${{ env.ADOT_WHEEL_NAME }}" >> $GITHUB_ENV
45+ else
46+ latest_release_version=$(curl -sL https://github.com/aws-observability/aws-otel-python-instrumentation/releases/latest | grep -oP '/releases/tag/v\K[0-9]+\.[0-9]+\.[0-9]+' | head -n 1)
47+ echo "The latest version is $latest_release_version"
48+ echo GET_ADOT_WHEEL_COMMAND="wget -O ${{ env.ADOT_WHEEL_NAME }} https://github.com/aws-observability/aws-otel-python-instrumentation/releases/latest/download/aws_opentelemetry_distro-$latest_release_version-py3-none-any.whl \
49+ && python3.12 -m pip install ${{ env.ADOT_WHEEL_NAME }}" >> $GITHUB_ENV
50+ fi
6551
6652 - name : Initiate Gradlew Daemon
6753 uses : ./.github/workflows/actions/execute_and_retry
@@ -119,7 +105,6 @@ jobs:
119105 -var="service_zip_url=${{ env.SAMPLE_APP_ZIP }}" \
120106 -var="trace_id=${{ env.TRACE_ID_HEADER }}" \
121107 -var="get_adot_wheel_command=${{ env.GET_ADOT_WHEEL_COMMAND }}" \
122- -var="python_version=${{ env.PYTHON_VERSION }}"
123108
124109 - name : Get deployment info
125110 working-directory : terraform/python/ec2/adot-genai
@@ -152,12 +137,6 @@ jobs:
152137 --instance-id ${{ env.INSTANCE_ID }}
153138 --trace-id ${{ env.XRAY_TRACE_ID }}'
154139
155- - name : Wait for metrics to be published
156- if : (success() || failure()) && !cancelled()
157- run : |
158- echo "Waiting 60 seconds to ensure EMF metrics are published to CloudWatch"
159- sleep 60
160-
161140 - name : Validate generated metrics
162141 if : (success() || failure()) && !cancelled()
163142 run : ./gradlew validator:run --args='-c python/ec2/adot-genai/metric-validation.yml
0 commit comments