Skip to content

Commit 44bdfca

Browse files
committed
Github action to ensure vendored requests version.
1 parent 5ee2c8c commit 44bdfca

File tree

2 files changed

+56
-0
lines changed

2 files changed

+56
-0
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
name: Check Dependencies
2+
3+
on:
4+
pull-request:
5+
6+
jobs:
7+
check:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- uses: actions/checkout@v3
11+
12+
#- name: Set up Python
13+
# uses: actions/setup-python@v4
14+
15+
- name: Check Dependencies
16+
run: ./scripts/check_dependencies.sh

scripts/check_dependencies.sh

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
#!/bin/bash -e
2+
3+
# This script checks to make sure that the vendored version of requests shipped
4+
# with pip meets the minimum required version of requests as defined by the
5+
# datadog package.
6+
7+
# create virtual environment
8+
rm -rf venv
9+
pip install virtualenv
10+
virtualenv venv
11+
source venv/bin/activate
12+
13+
# determine highest available version of requests
14+
pip install .
15+
highest=$(pip freeze | grep requests | tr -d 'requests==')
16+
echo "Highest available version of requests: $highest"
17+
18+
# determine minumum required version of requests
19+
pip uninstall -y requests
20+
uv pip install --resolution=lowest .
21+
lowest=$(pip freeze | grep requests | tr -d 'requests==')
22+
echo "Minimum required version of requests: $lowest"
23+
24+
# determine version of requests packaged with pip
25+
vendored=$(docker run --entrypoint='' public.ecr.aws/lambda/python:latest \
26+
python -c "import pip._vendor.requests; print(pip._vendor.requests.__version__)")
27+
echo "Version of vendored requests: $vendored"
28+
29+
# compare versions
30+
pip install packaging
31+
compared=$(python -c "from packaging.version import parse; print(parse('$lowest') <= parse('$vendored'))")
32+
33+
if [[ $compared == "True" ]]; then
34+
echo "The vendored version of requests meets the minimum requirement"
35+
echo " lowest required ($lowest) <= vendored version ($vendored) <= highest available ($highest)"
36+
else
37+
echo "The vendored version of requests does not meet the minimum requirement"
38+
echo " vendered version ($vendored) < lowest required ($lowest) <= highest available ($highest)"
39+
exit 1
40+
fi

0 commit comments

Comments
 (0)