DNM: diagnosis pinning error with typing-extensions #8
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 }} |