Skip to content

DNM: diagnosis pinning error with typing-extensions #8

DNM: diagnosis pinning error with typing-extensions

DNM: diagnosis pinning error with typing-extensions #8

Workflow file for this run

name: ESP-IDF Unit Tests
on:
push:
branches:
- szczys/dnm-typing-extensions-diagnostics
workflow_dispatch:
jobs:
unit-tests:
permissions:
contents: read
runs-on: ubuntu-24.04
# ESP-IDF v6.0.1
container: espressif/idf@sha256:efc19fae2f52fc6873630c668da26aa834139a063b5fb73a46ebc0dbd217b587
env:
UNIT_TEST_APP_PATH: tests/esp_idf/port
UNITY_REPORT_NAME: unit-test-esp-idf.xml
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install uv
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
- name: Build on Linux
run: |
# 32-bit headers
dpkg --add-architecture i386
apt-get update
apt-get install -y \
gcc-multilib \
g++-multilib \
libc6-dev-i386 \
libc6-dev:i386 \
libbsd-dev:i386
# Activate virtual environment
. $IDF_PATH/export.sh
# Diagnostics for hash-mode dependency issue
echo "=== Diagnostics: Tooling versions ==="
python --version
uv --version || true
echo "=== Diagnostics: Active constraint env vars ==="
env | grep -E '^(PIP_CONSTRAINT|UV_CONSTRAINT|PIP_INDEX_URL|PIP_EXTRA_INDEX_URL|PIP_REQUIRE_VIRTUALENV)=' || true
echo "=== Diagnostics: IDF Python env ==="
echo "IDF_PYTHON_ENV_PATH=$IDF_PYTHON_ENV_PATH"
"$IDF_PYTHON_ENV_PATH/bin/python" --version || true
echo "=== Diagnostics: typing-extensions presence before install ==="
"$IDF_PYTHON_ENV_PATH/bin/python" -c "import importlib.util as u; print('typing_extensions_installed=', bool(u.find_spec('typing_extensions')))"
# Python Dependencies
uv pip install \
--python $IDF_PYTHON_ENV_PATH \
-r requirements-ci-esp-idf.txt \
--require-hashes \
-vv
# Set target
idf.py -C $UNIT_TEST_APP_PATH --preview set-target linux
# Build
idf.py -C $UNIT_TEST_APP_PATH build
- name: Run Unit Test
run: |
. $IDF_PATH/export.sh
cd ${UNIT_TEST_APP_PATH}
pytest -s \
--embedded-services idf \
--target linux \
--app-path ./build \
--junit-xml=${UNITY_REPORT_NAME}
- name: Post-process Junit XML
if: success() || failure()
run: |
. $IDF_PATH/export.sh
cd ${UNIT_TEST_APP_PATH}
./junit_post_process.py ${UNITY_REPORT_NAME}
- name: Upload CI report summary
uses: actions/upload-artifact@v7
if: success() || failure()
with:
name: ci-summary-integration-esp-idf-unit-tests
path: ${{ env.UNIT_TEST_APP_PATH }}/${{ env.UNITY_REPORT_NAME }}