test(hw): runtime device-tree overlay lifecycle for AD9081+ZCU102 and ADRV9009+ZC706 #109
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: Test on Kuiper64 | |
| permissions: | |
| contents: read | |
| checks: write | |
| pull-requests: write | |
| env: | |
| APP_NAME: pyadi-dt | |
| on: | |
| pull_request: | |
| branches: | |
| - main | |
| jobs: | |
| kuiper64-test: | |
| runs-on: ubuntu-24.04-arm | |
| env: | |
| CONTAINER_BASE_NAME: kuiper-container-basic | |
| DOCKER_IMAGE: aandrisa/kuiper_basic_64:latest | |
| IMAGE_ARCH: linux/arm64 | |
| ARCHITECTURE: arm64 | |
| name: Test on Kuiper64 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| with: | |
| path: ${{env.APP_NAME}} | |
| - name: Start persistent container | |
| run: | | |
| docker run -d \ | |
| --platform ${{env.IMAGE_ARCH}} \ | |
| --name ${{env.CONTAINER_BASE_NAME}}-${{env.ARCHITECTURE}} \ | |
| -v "$GITHUB_WORKSPACE/${{env.APP_NAME}}:/workspace/${{env.APP_NAME}}" \ | |
| -w /workspace/${{env.APP_NAME}} \ | |
| ${{env.DOCKER_IMAGE}} tail -f /dev/null | |
| - name: Install Python dependencies | |
| # python3-dev is needed for docplex's sdist install path, which | |
| # builds an old numpy (1.26.4) from source when no matching arm64 | |
| # wheel is available; without Python.h the numpy build fails. | |
| run: | | |
| docker exec ${{env.CONTAINER_BASE_NAME}}-${{env.ARCHITECTURE}} sh -c "apt-get update && apt-get install -y --no-install-recommends python3-dev && python3 -m pip install --upgrade pip && pip install '.[test]'" | |
| - name: Run tests | |
| run: | | |
| docker exec ${{env.CONTAINER_BASE_NAME}}-${{env.ARCHITECTURE}} sh -c \ | |
| "pytest -vs --junitxml=/workspace/${{env.APP_NAME}}/junit-kuiper64.xml" | |
| - name: Upload JUnit XML | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: junit-kuiper64 | |
| path: ${{env.APP_NAME}}/junit-kuiper64.xml | |
| retention-days: 14 | |
| if-no-files-found: warn | |
| - name: Publish test results to PR | |
| if: always() | |
| uses: dorny/test-reporter@v1 | |
| with: | |
| name: Tests (Kuiper64) | |
| # working-directory tells the reporter where to run git | |
| # operations; the checkout stepped us into APP_NAME/. | |
| working-directory: ${{env.APP_NAME}} | |
| path: junit-kuiper64.xml | |
| reporter: java-junit | |
| fail-on-error: false | |
| - name: Publish PR comment with test summary | |
| if: always() && github.event_name == 'pull_request' | |
| uses: EnricoMi/publish-unit-test-result-action@v2 | |
| with: | |
| files: ${{env.APP_NAME}}/junit-kuiper64.xml | |
| check_name: 'Kuiper64 Test Results' | |
| comment_mode: always | |
| report_individual_runs: true |