Skip to content

Custom build #361

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 94 commits into
base: main
Choose a base branch
from
Draft
Changes from all commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
d10888b
Testrelease 1.3.1.1
tammy-baylis-swi Feb 21, 2024
0bfc60a
Translate aws-lambda-ll to workflow
tammy-baylis-swi Feb 21, 2024
0db9cf9
Install path
tammy-baylis-swi Feb 21, 2024
3eca280
Path update again
tammy-baylis-swi Feb 21, 2024
7082da2
Merge branch 'main' into custom-layer-build-from-checkout
tammy-baylis-swi Feb 22, 2024
87ca27c
Merge branch 'NH-73037-is-error-attr-values' into custom-layer-build-…
tammy-baylis-swi Feb 22, 2024
71f9687
Testrelease 1.3.1.2
tammy-baylis-swi Feb 22, 2024
cee6012
Update custom build script path
tammy-baylis-swi Feb 22, 2024
b82627a
Merge branch 'main' into custom-layer-build-from-checkout
tammy-baylis-swi Feb 28, 2024
64c4179
Layer upgrade otel 1.23.0/0.44b0
tammy-baylis-swi Feb 28, 2024
58ce1e4
Testrelease 1.4.0.2
tammy-baylis-swi Feb 28, 2024
3117f62
Add requirements-so for layers
tammy-baylis-swi Mar 1, 2024
525c7d1
Testrelease 1.4.0.3
tammy-baylis-swi Mar 1, 2024
89c4fbe
Add volume for local build
tammy-baylis-swi Mar 4, 2024
8a65e3c
Merge branch 'main' into custom-layer-build-from-checkout
tammy-baylis-swi Mar 4, 2024
977aafb
Testrelease 1.5.0.0
tammy-baylis-swi Mar 4, 2024
590687c
Update comment
tammy-baylis-swi Mar 4, 2024
4e04c4d
Merge branch 'main' into custom-layer-build-from-checkout
tammy-baylis-swi Mar 5, 2024
e0b55c0
load_instrumentor catches and logs
tammy-baylis-swi Mar 5, 2024
bb66151
Disable aws propagation by default
tammy-baylis-swi Mar 7, 2024
d38f0c2
Add make aws-lambda-orm
tammy-baylis-swi Mar 8, 2024
811f417
Add packaging to reqs-nodeps
tammy-baylis-swi Mar 8, 2024
b483ddc
Distro uses env for pass aws_context_propagation
tammy-baylis-swi Mar 11, 2024
077c271
Add debug line
tammy-baylis-swi Mar 11, 2024
5c930b8
Add wrapper logging
tammy-baylis-swi Mar 11, 2024
bae9492
wrapper checks existing disable_aws
tammy-baylis-swi Mar 11, 2024
4990650
Revert "Add wrapper logging"
tammy-baylis-swi Mar 11, 2024
f75dd2c
Revert "Add debug line"
tammy-baylis-swi Mar 12, 2024
248c5f0
Revert "Distro uses env for pass aws_context_propagation"
tammy-baylis-swi Mar 12, 2024
2537cdb
Revert "wrapper checks existing disable_aws"
tammy-baylis-swi Mar 14, 2024
e16ff19
Merge branch 'main' into custom-layer-build-from-checkout
tammy-baylis-swi Mar 14, 2024
c189abb
Merge branch 'main' into custom-layer-build-from-checkout
tammy-baylis-swi Mar 18, 2024
d04a840
Testrelease 1.6.0.0
tammy-baylis-swi Mar 18, 2024
5a0c2a5
Add distro detect_semconv_opt_in for instrumentor loading
tammy-baylis-swi Mar 20, 2024
75d383d
Custom packaging of opentelemetry-instrumentation
tammy-baylis-swi Mar 20, 2024
3a13aa4
Testrelease 1.6.0.1
tammy-baylis-swi Mar 20, 2024
08ff448
Add publish-dest param for layer publish
tammy-baylis-swi Mar 21, 2024
c953748
Testrelease 1.6.0.2
tammy-baylis-swi Mar 21, 2024
ba7785a
Revert "Custom packaging of opentelemetry-instrumentation"
tammy-baylis-swi Mar 21, 2024
6b72bc0
Revert "Add distro detect_semconv_opt_in for instrumentor loading"
tammy-baylis-swi Mar 21, 2024
106853e
Merge branch 'custom-layer-build-from-checkout' into add-layer-prod-pub
tammy-baylis-swi Mar 21, 2024
cf01b23
Typo
tammy-baylis-swi Mar 21, 2024
aaa2dfa
Merge pull request #340 from solarwinds/add-layer-prod-pub
tammy-baylis-swi Mar 21, 2024
1f8a0bb
Merge branch 'main' into custom-layer-build-from-checkout
tammy-baylis-swi Mar 21, 2024
196c419
Drop Python3.7 support
tammy-baylis-swi Mar 25, 2024
9d01763
Testrelease 1.6.0.3
tammy-baylis-swi Mar 25, 2024
40732cb
Merge pull request #344 from solarwinds/NH-76081-drop-py37-support-la…
tammy-baylis-swi Mar 25, 2024
74b8bd0
Merge branch 'main' into custom-layer-build-from-checkout
tammy-baylis-swi Mar 25, 2024
7e19446
NH-76217 fix init event logging
tammy-baylis-swi Mar 26, 2024
f6c5ea5
Merge branch 'main' into custom-layer-build-from-checkout
tammy-baylis-swi Mar 26, 2024
1750f12
Add aws-lambda-custom check step
tammy-baylis-swi Mar 27, 2024
e342f03
Rm comment
tammy-baylis-swi Mar 27, 2024
3a403a5
Testrelease 1.6.0.4
tammy-baylis-swi Mar 27, 2024
a4e743c
Debug workflow
tammy-baylis-swi Mar 27, 2024
6bcd2a8
Add sort k1 to otel install check
tammy-baylis-swi Mar 27, 2024
bc20775
Revert "Debug workflow"
tammy-baylis-swi Mar 27, 2024
1fe4a73
tox drop py37, add py311
tammy-baylis-swi Mar 27, 2024
4d09692
Fix lambda check order
tammy-baylis-swi Mar 28, 2024
dff6bb4
WIP add lambda wrapper test
tammy-baylis-swi Mar 28, 2024
7b0c578
tox install aws-lambda from local
tammy-baylis-swi Apr 1, 2024
b760bac
gitignore for aws-lambda custom tox test
tammy-baylis-swi Apr 1, 2024
dd28a83
Add run_tox job to publish_lambda_layer
tammy-baylis-swi Apr 1, 2024
4330677
Add needs
tammy-baylis-swi Apr 1, 2024
a6a29e9
build_lambda tox assumes runner path for checkout
tammy-baylis-swi Apr 1, 2024
831f9ef
change path
tammy-baylis-swi Apr 1, 2024
ac7474e
Merge pull request #347 from solarwinds/add-lambda-tox-test
tammy-baylis-swi Apr 1, 2024
ad52831
Merge branch 'main' into custom-layer-build-from-checkout
tammy-baylis-swi Apr 1, 2024
ab80bd3
Merge branch 'NH-76876-upgrade-clib-14_1_0' into custom-layer-build-f…
tammy-baylis-swi Apr 2, 2024
78c561a
Merge branch 'main' into custom-layer-build-from-checkout
tammy-baylis-swi Apr 2, 2024
5b27bfb
Debug otlp on_start/on_end
tammy-baylis-swi Apr 3, 2024
5288cfb
Testrelease 1.7.0.0
tammy-baylis-swi Apr 3, 2024
b0059f1
Fix import
tammy-baylis-swi Apr 3, 2024
4711fb3
Update default OTEL_PYTHON_LOG_FORMAT
tammy-baylis-swi Apr 3, 2024
85f6227
Custom install logging instrumentor
tammy-baylis-swi Apr 3, 2024
d8d69f1
Comment out setdefault OTEL_PYTHON_LOG_FORMAT
tammy-baylis-swi Apr 3, 2024
072c8d5
Revert "Comment out setdefault OTEL_PYTHON_LOG_FORMAT"
tammy-baylis-swi Apr 12, 2024
3397685
Revert "Custom install logging instrumentor"
tammy-baylis-swi Apr 12, 2024
b2daa43
Revert "Update default OTEL_PYTHON_LOG_FORMAT"
tammy-baylis-swi Apr 12, 2024
f442eba
Revert "Fix import"
tammy-baylis-swi Apr 12, 2024
9cfb449
Revert "Debug otlp on_start/on_end"
tammy-baylis-swi Apr 12, 2024
0298899
Testrelease 1.7.0.1
tammy-baylis-swi Apr 12, 2024
8a9413c
Merge branch 'NH-75342-stop-logging-hander-propagation' into custom-l…
tammy-baylis-swi Apr 12, 2024
b25245d
Merge branch 'main' into custom-layer-build-from-checkout
tammy-baylis-swi Apr 30, 2024
08f585a
Rename custom-sw-build branch
tammy-baylis-swi Apr 30, 2024
97169e4
Upgrade Otel Python 1.24.0/0.45b0
tammy-baylis-swi Apr 30, 2024
fcf984a
Testrelease 2.0.0.0
tammy-baylis-swi Apr 30, 2024
3061f41
Rm run_tox_test py37
tammy-baylis-swi Apr 30, 2024
a702174
Merge branch 'main' into custom-sw-build
tammy-baylis-swi May 16, 2024
39032dd
Testrelease 1.7.0.2 (match regular release)
tammy-baylis-swi May 16, 2024
232f90c
Release 1.7.0
tammy-baylis-swi May 16, 2024
7c4b422
Merge branch 'main' into custom-sw-build
tammy-baylis-swi Jun 3, 2024
f3b492d
Merge branch 'NH-79326-cleanup-layer-builds' into custom-sw-build
tammy-baylis-swi Jun 3, 2024
2a7142f
Merge branch 'main' into custom-sw-build
tammy-baylis-swi Jun 4, 2024
df7b7a7
Update deps
tammy-baylis-swi Jun 4, 2024
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
Original file line number Diff line number Diff line change
@@ -13,6 +13,6 @@ runs:
image: quay.io/pypa/manylinux_2_28_aarch64:latest
entrypoint: 'make'
args:
- 'aws-lambda'
- 'aws-lambda-custom'
env:
PLATFORM: aarch64
Original file line number Diff line number Diff line change
@@ -13,6 +13,6 @@ runs:
image: quay.io/pypa/manylinux_2_28_x86_64:latest
entrypoint: 'make'
args:
- 'aws-lambda'
- 'aws-lambda-custom'
env:
PLATFORM: x86_64
8 changes: 7 additions & 1 deletion .github/workflows/build_publish_lambda_layer.yaml
Original file line number Diff line number Diff line change
@@ -24,9 +24,15 @@ jobs:
strategy:
matrix:
python-minor: ["8", "9", "10", "11"]
apm-env: ["lambda"]
apm-env: ["lambda-gh"]
steps:
- uses: actions/checkout@v4
- name: Checkout custom instrumentor
uses: actions/checkout@v4
with:
repository: tammy-baylis-swi/opentelemetry-python-contrib
ref: custom-sw-build
path: contrib-custom
- name: Setup Python
uses: actions/setup-python@v5
with:
5 changes: 5 additions & 0 deletions .github/workflows/build_publish_lambda_layer_aarch64.yaml
Original file line number Diff line number Diff line change
@@ -56,6 +56,11 @@ jobs:
SW_APM_VERSION: ${{ steps.save-apm-python-version.outputs.SW_APM_VERSION }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v4
with:
repository: tammy-baylis-swi/opentelemetry-python-contrib
ref: build-lambda-handler-exceptions
path: contrib-custom
- uses: ./.github/actions/package_lambda_solarwinds_apm_aarch64
- name: Save APM Python Version for naming
id: save-apm-python-version
5 changes: 5 additions & 0 deletions .github/workflows/build_publish_lambda_layer_x86_64.yaml
Original file line number Diff line number Diff line change
@@ -21,6 +21,11 @@ jobs:
SW_APM_VERSION: ${{ steps.save-apm-python-version.outputs.SW_APM_VERSION }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v4
with:
repository: tammy-baylis-swi/opentelemetry-python-contrib
ref: build-lambda-handler-exceptions
path: contrib-custom
- uses: ./.github/actions/package_lambda_solarwinds_apm_x86_64
- name: Save APM Python Version for naming
id: save-apm-python-version
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -11,6 +11,7 @@ __pycache__/
build/
develop-eggs/
dist/
dist_orm/
downloads/
eggs/
.eggs/
@@ -28,6 +29,7 @@ share/python-wheels/
*.egg
MANIFEST
log.txt
tmp-lambda/

# PyInstaller
# Usually these files are written by a python script from a template
84 changes: 84 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -237,6 +237,89 @@ aws-lambda: check-zip wrapper install-lambda-modules check-lambda-modules
@rm -rf ${target_dir} ./build
@echo -e "\nDone."

target_dir := "./tmp-lambda"
install-lambda-modules-custom:
@if [ -f ./dist/solarwinds_apm_lambda_${platform}.zip ]; then \
echo -e "Deleting old solarwinds_apm_lambda_${platform}.zip"; \
rm ./dist/solarwinds_apm_lambda_${platform}.zip; \
fi
rm -rf ${target_dir}
@echo -e "Creating target directory ${target_dir} for AWS Lambda layer artifacts."
mkdir -p ${target_dir}/python
@echo -e "Install upstream dependencies to include in layer"
@/opt/python/cp38-cp38/bin/pip3.8 install -t ${target_dir}/python -r lambda/requirements-custom.txt
@echo -e "Install other version-specific .so files for deps"
@set -e; for PYBIN in cp39-cp39 cp310-cp310 cp311-cp311; do /opt/python/$${PYBIN}/bin/pip install -t ${target_dir}/$${PYBIN} -r lambda/requirements-so.txt; done
@set -e; for PYBIN in cp39-cp39 cp310-cp310 cp311-cp311; do cp ${target_dir}/$${PYBIN}/charset_normalizer/*.so ${target_dir}/python/charset_normalizer/ && cp ${target_dir}/$${PYBIN}/grpc/_cython/*.so ${target_dir}/python/grpc/_cython/ && cp ${target_dir}/$${PYBIN}/wrapt/*.so ${target_dir}/python/wrapt/; done
@set -e; for PYBIN in cp39-cp39 cp310-cp310 cp311-cp311; do rm -rf ${target_dir}/$${PYBIN} ; done
@echo -e "Install upstream dependencies without deps to include in layer"
@/opt/python/cp38-cp38/bin/pip3.8 install -t ${target_dir}/nodeps -r lambda/requirements-nodeps.txt --no-deps
@echo "Contents of contrib-custom:"
@ls -al contrib-custom/
@echo -e "Install aws-lambda instrumentor from local to include in layer"
@/opt/python/cp38-cp38/bin/pip3.8 install -t ${target_dir}/nodeps -Ie contrib-custom/instrumentation/opentelemetry-instrumentation-aws-lambda
@echo -e "Directly copying aws-lambda src files"
@mkdir ${target_dir}/nodeps/opentelemetry/instrumentation/aws_lambda
@cp -r contrib-custom/instrumentation/opentelemetry-instrumentation-aws-lambda/src/opentelemetry/instrumentation/aws_lambda/* ${target_dir}/nodeps/opentelemetry/instrumentation/aws_lambda
@echo -e "Install solarwinds_apm to be packed up in zip archive to target directory."
@/opt/python/cp38-cp38/bin/pip3.8 install . -t ${target_dir}/nodeps --no-deps
@echo -e "Removing non-lambda C-extension library files generated by pip install under target directory."
@rm -rf ${target_dir}/nodeps/solarwinds_apm/extension/*.so*
@echo -e "Building AWS Lambda version of C-extensions for all supported Python versions in target directory."
@set -e; for PYBIN in cp37-cp37m cp38-cp38 cp39-cp39 cp310-cp310 cp311-cp311; do /opt/python/$${PYBIN}/bin/python setup.py build_ext -b ${target_dir}/nodeps; done
@echo -e "Copying AWS Lambda specific Oboe library liboboe-1.0-lambda-${platform}.so into target directory."
@cp solarwinds_apm/extension/liboboe-1.0-lambda-${platform}.so ${target_dir}/nodeps/solarwinds_apm/extension/liboboe.so
@echo -e "Moving no-deps dependencies, needed for full opentelemetry/instrumentation path"
@cp -r ${target_dir}/nodeps/* ${target_dir}/python
@rm -rf ${target_dir}/nodeps
@echo -e "Copying OpenTelemetry lambda wrapper and entry script into target directory."
@cp lambda/otel_wrapper.py ${target_dir}/python/otel_wrapper.py
@mkdir ${target_dir}/solarwinds-apm/
@cp lambda/solarwinds-apm/wrapper ${target_dir}/solarwinds-apm/wrapper
@chmod 755 ${target_dir}/solarwinds-apm/wrapper
@echo -e "Removing unnecessary boto, six, setuptools, urllib3 installations"
@rm -rf ${target_dir}/python/boto*
@rm -rf ${target_dir}/python/six*
@rm -rf ${target_dir}/python/setuptools*
@rm -rf ${target_dir}/python/urllib3*
@find ${target_dir}/python -type d -name '__pycache__' | xargs rm -rf

check-lambda-modules-custom:
./lambda/check_lambda_modules.sh ${target_dir}

# Build APM Python AWS lambda layer as zip artifact
# with extension compatible with current environment
# (x86_64 OR aarch64) using custom contrib modules
target_dir := "./tmp-lambda"
aws-lambda-custom: export AWS_LAMBDA_FUNCTION_NAME = set-for-build
aws-lambda-custom: export LAMBDA_TASK_ROOT = set-for-build
aws-lambda-custom: check-zip wrapper install-lambda-modules-custom check-lambda-modules-custom
@if [[ ! -d dist ]]; then mkdir dist; fi
@pushd ${target_dir} && zip -r ../dist/solarwinds_apm_lambda_${platform}.zip . && popd
@rm -rf ${target_dir} ./build
@echo -e "\nDone."

# Build Python ORM AWS lambda layer as zip artifact
# with py38 extensions compatible with current environment
# (x86_64 OR aarch64)
target_dir := "./tmp-lambda"
aws-lambda-orm: check-zip
@if [ -f ./dist/orm_lambda_${platform}.zip ]; then \
echo -e "Deleting old orm_lambda_${platform}.zip"; \
rm ./dist/orm_lambda_${platform}.zip; \
fi
rm -rf ${target_dir}
@echo -e "Creating target directory ${target_dir} for AWS Lambda layer artifacts."
mkdir -p ${target_dir}/python
@echo -e "Install ORM modules to include in layer"
@/opt/python/cp38-cp38/bin/pip3.8 install -t ${target_dir}/python -r lambda/requirements-orm.txt
@find ${target_dir}/python -type d -name '__pycache__' | xargs rm -rf
@echo -e "Preparing ORM layer archive"
@if [[ ! -d dist_orm ]]; then mkdir dist_orm; fi
@pushd ${target_dir} && zip -r ../dist_orm/orm_lambda_${platform}.zip . && popd
@rm -rf ${target_dir} ./build
@echo -e "\nDone."

#----------------------------------------------------------------------------------------------------------------------#
# recipes for local development
#----------------------------------------------------------------------------------------------------------------------#
@@ -314,6 +397,7 @@ clean:
@find . -type d -name '*.ropeproject' | xargs rm -rf
@rm -rf build/
@rm -rf dist/
@rm -rf dist_orm/
@rm -rf *.egg*
@rm -f MANIFEST
@rm -rf docs/build/
8 changes: 8 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -11,6 +11,7 @@ version: '2.4'
services:
x86_64:
image: quay.io/pypa/manylinux_2_28_x86_64
user: root
stdin_open: true
tty: true
network_mode: host
@@ -19,6 +20,7 @@ services:
volumes:
- ./:/code/solarwinds_apm
- ../solarwinds-apm-liboboe/:/code/solarwinds-apm-liboboe
- ../opentelemetry-python-contrib/:/code/solarwinds_apm/contrib-custom/
working_dir: /code/solarwinds_apm
entrypoint: ["/bin/bash", "-c"]
command:
@@ -27,10 +29,13 @@ services:
# twine to upload to TestPyPi
# tox for automated tests
python3.8 -m pip install boto3 twine tox
# update wrapper permissions for local testing in docker
chmod 755 /code/solarwinds_apm/lambda/solarwinds-apm/wrapper
/bin/bash

aarch64:
image: quay.io/pypa/manylinux_2_28_aarch64
user: root
stdin_open: true
tty: true
network_mode: host
@@ -39,6 +44,7 @@ services:
volumes:
- ./:/code/solarwinds_apm
- ../solarwinds-apm-liboboe/:/code/solarwinds-apm-liboboe
- ../opentelemetry-python-contrib/:/code/solarwinds_apm/contrib-custom/
working_dir: /code/solarwinds_apm
entrypoint: ["/bin/bash", "-c"]
command:
@@ -47,4 +53,6 @@ services:
# twine to upload to TestPyPi
# tox for automated tests
python3.8 -m pip install boto3 twine tox
# update wrapper permissions for local testing in docker
chmod 755 /code/solarwinds_apm/lambda/solarwinds-apm/wrapper
/bin/bash
7 changes: 7 additions & 0 deletions lambda/requirements-custom.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
opentelemetry-api==1.25.0
opentelemetry-sdk==1.25.0
opentelemetry-instrumentation==0.46b0
opentelemetry-propagator-aws-xray==1.0.1
opentelemetry-exporter-otlp==1.25.0
opentelemetry-exporter-otlp-proto-grpc==1.25.0
opentelemetry-exporter-otlp-proto-http==1.25.0
2 changes: 1 addition & 1 deletion lambda/requirements-nodeps.txt
Original file line number Diff line number Diff line change
@@ -27,4 +27,4 @@ opentelemetry-instrumentation-sqlalchemy==0.46b0
opentelemetry-instrumentation-sqlite3==0.46b0
opentelemetry-instrumentation-starlette==0.46b0
opentelemetry-instrumentation-tornado==0.46b0
opentelemetry-instrumentation-wsgi==0.46b0
opentelemetry-instrumentation-wsgi==0.46b0
2 changes: 2 additions & 0 deletions lambda/requirements-orm.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
SQLAlchemy==2.0.28
psycopg2_binary==2.9.9
4 changes: 3 additions & 1 deletion lambda/tests/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
opentelemetry-instrumentation-aws-lambda == 0.46b0
opentelemetry-propagator-aws-xray == 1.0.1
# This is a gross workaround to test on `custom` branch
# when pyproject.toml doesn't install upstream deps
opentelemetry-instrumentation-logging==0.46b0
8 changes: 4 additions & 4 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -41,10 +41,10 @@ classifiers = [
]
requires-python = ">=3.8"
dependencies = [
'opentelemetry-api == 1.25.0',
'opentelemetry-sdk == 1.25.0',
'opentelemetry-instrumentation == 0.46b0',
'opentelemetry-instrumentation-logging == 0.46b0',
# 'opentelemetry-api == 1.25.0',
# 'opentelemetry-sdk == 1.25.0',
# 'opentelemetry-instrumentation == 0.46b0',
# 'opentelemetry-instrumentation-logging == 0.46b0',
]

[project.urls]
5 changes: 5 additions & 0 deletions tox.ini
Original file line number Diff line number Diff line change
@@ -33,12 +33,17 @@ setenv =

[testenv:py3{8,9,10,11}-lambda]
changedir = lambda/tests
; Currently installs custom checkout for custom build tests
commands_pre =
py3{8,9,10,11}-lambda: pip install -Ie /code/solarwinds_apm/contrib-custom/instrumentation/opentelemetry-instrumentation-aws-lambda
py3{8,9,10,11}-lambda: pip install -r requirements.txt

[testenv:py3{8,9,10,11}-lambda-gh]
changedir = lambda/tests
; Currently installs custom checkout for custom build tests
; assuming GH runner filepath
commands_pre =
py3{8,9,10,11}-lambda: pip install -Ie /home/runner/work/apm-python/apm-python/contrib-custom/instrumentation/opentelemetry-instrumentation-aws-lambda
py3{8,9,10,11}-lambda: pip install -r requirements.txt

[testenv:lint]