Skip to content

Commit 4f36d47

Browse files
authored
Init Python Layer e2e workflow in main-build (#277)
*Description of changes:* Setup Python Lambda layer E2E tests. Current the data validation steps are failing due to the known quality issue. This changes are mainly for `main-build` validation in https://github.com/aws-observability/aws-otel-python-instrumentation . it will not trigger any alarm or block anything. #### Test workflow * https://github.com/mxiamxia/aws-otel-python-instrumentation/actions/runs/11228192500/job/31212383995 EMF validation failed as expected due to the known EMF data quality issue WIP. By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
1 parent cc72f68 commit 4f36d47

File tree

3 files changed

+72
-4
lines changed

3 files changed

+72
-4
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Build and Push aws-opentelemetry-python-distro Layer
2+
description: |
3+
This action assumes that the repo was checked out. Builds and push Lambda Layer and sample app to S3 bucket for
4+
the further end to end tests.
5+
6+
inputs:
7+
aws-region:
8+
required: false
9+
description: "AWS Region, required only if push_image is true"
10+
snapshot-ecr-role:
11+
required: false
12+
description: "IAM Role used for pushing to snapshot ecr, required only if push_image is true"
13+
python_version:
14+
required: true
15+
description: "The python version used in actions"
16+
layer_directory:
17+
required: true
18+
description: 'The role use to publish lambda layer'
19+
staging_s3_bucket:
20+
required: true
21+
description: 'S3 bucket holds SDK artifact tarball'
22+
os:
23+
required: true
24+
description: "The os"
25+
26+
27+
runs:
28+
using: "composite"
29+
steps:
30+
- name: Build sample lambda function
31+
shell: bash
32+
working-directory: ${{ inputs.layer_directory }}/sample-apps
33+
run: ./package-lambda-function.sh
34+
- name: Build layers
35+
shell: bash
36+
working-directory: ${{ inputs.layer_directory }}/src
37+
run: |
38+
./build-lambda-layer.sh
39+
pip install tox
40+
tox
41+
- name: Upload Layer to S3
42+
shell: bash
43+
run: |
44+
aws s3 cp ./build/aws-opentelemetry-python-layer.zip s3://${{ inputs.staging_s3_bucket }}/layer-${{ github.run_id }}.zip
45+
working-directory: ${{ inputs.layer_directory }}/src
46+
- name: Upload Sample App to S3
47+
shell: bash
48+
run: |
49+
aws s3 cp ./build/function.zip s3://${{ inputs.staging_s3_bucket }}/function-${{ github.run_id }}.zip
50+
working-directory: ${{ inputs.layer_directory }}/sample-apps

.github/workflows/application-signals-e2e-test.yml

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ jobs:
100100
python-version: '3.12'
101101
cpu-architecture: 'x86_64'
102102
staging-wheel-name: ${{ inputs.staging-wheel-name }}
103-
103+
104104
#
105105
# DOCKER DISTRIBUTION LANGUAGE VERSION COVERAGE
106106
# DEFAULT SETTING: {Python Version}, EKS, AMD64, AL2
@@ -174,7 +174,7 @@ jobs:
174174
caller-workflow-name: 'main-build'
175175
python-version: '3.9'
176176
staging-wheel-name: ${{ inputs.staging-wheel-name }}
177-
177+
178178
#
179179
# DOCKER DISTRIBUTION PLATFORM COVERAGE
180180
# DEFAULT SETTING: Python 3.10, {Platform}, AMD64, AL2
@@ -215,5 +215,12 @@ jobs:
215215
cpu-architecture: 'arm64'
216216
staging-wheel-name: ${{ inputs.staging-wheel-name }}
217217

218-
219-
218+
#
219+
# Lambda layer integration tests
220+
lambda:
221+
uses: aws-observability/aws-application-signals-test-framework/.github/workflows/python-lambda-test.yml@main
222+
secrets: inherit
223+
with:
224+
aws-region: us-east-1
225+
python-version: '3.12'
226+
caller-workflow-name: 'main-build'

.github/workflows/main_build.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ on:
55
branches:
66
- main
77
- "release/v*"
8+
- ci-workflow
89
workflow_dispatch: # be able to run the workflow on demand
910
env:
1011
AWS_DEFAULT_REGION: us-east-1
@@ -71,6 +72,16 @@ jobs:
7172
cd ./dist
7273
cp aws_opentelemetry_distro-${{ steps.python_output.outputs.ADOT_PYTHON_VERSION}}-py3-none-any.whl $staging_wheel
7374
75+
- name: Build and Publish Lambda Staging Layer
76+
uses: ./.github/actions/lambda_artifacts_build
77+
with:
78+
aws-region: ${{ env.AWS_DEFAULT_REGION }}
79+
snapshot-ecr-role: ${{ secrets.AWS_ASSUME_ROLE_ARN }}
80+
python_version: "3.12"
81+
layer_directory: lambda-layer
82+
staging_s3_bucket: ${{ env.STAGING_S3_BUCKET }}
83+
os: ubuntu-latest
84+
7485
- name: Upload wheel to S3
7586
run: |
7687
aws s3 cp dist/${{ steps.staging_wheel_output.outputs.STAGING_WHEEL}} s3://${{ env.STAGING_S3_BUCKET }}

0 commit comments

Comments
 (0)