efi: payload: image: refactor and cleanup code. #7
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 images | |
| on: [push, pull_request] | |
| jobs: | |
| labgrid-pytest: | |
| runs-on: ubuntu-latest | |
| container: | |
| image: ghcr.io/barebox/barebox/barebox-ci:latest | |
| # allow mounting and devtmpfs in the container | |
| options: --user=root --privileged -v /dev:/dev | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - ARCH: arm | |
| lgenv: 'test/arm/*@multi_v5_v6_defconfig.yaml' | |
| defconfig: multi_v5_v6_defconfig | |
| - ARCH: arm | |
| lgenv: 'test/arm/*@multi_v7_defconfig.yaml' | |
| defconfig: multi_v7_defconfig | |
| - ARCH: arm | |
| lgenv: test/arm/multi_v8_defconfig.yaml | |
| defconfig: multi_v8_defconfig | |
| lgargs: --runxfail | |
| - ARCH: mips | |
| lgenv: test/mips/qemu-malta_defconfig.yaml | |
| defconfig: qemu-malta_defconfig | |
| - ARCH: mips | |
| lgenv: test/mips/qemu-malta64el_defconfig.yaml | |
| defconfig: qemu-malta64el_defconfig | |
| - ARCH: openrisc | |
| lgenv: test/openrisc/generic_defconfig.yaml | |
| defconfig: generic_defconfig | |
| - ARCH: x86 | |
| lgenv: test/x86/efi_defconfig.yaml | |
| defconfig: efi_defconfig | |
| - ARCH: riscv | |
| lgenv: test/riscv/qemu@virt32_defconfig.yaml | |
| defconfig: virt32_defconfig | |
| - ARCH: riscv | |
| lgenv: 'test/riscv/qemu-virt64@rv64i_defconfig.yaml' | |
| defconfig: rv64i_defconfig | |
| - ARCH: sandbox | |
| lgenv: 'test/sandbox/sandbox_defconfig.yaml' | |
| defconfig: sandbox_defconfig | |
| - ARCH: sandbox | |
| lgenv: 'test/sandbox/allyesconfig.yaml' | |
| defconfig: allyesconfig | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Build | |
| id: build | |
| run: | | |
| export KBUILD_OUTPUT=build-${{matrix.arch}}-${{matrix.defconfig}} | |
| export ARCH=${{matrix.arch}} | |
| export KCONFIG_ADD="common/boards/configs/enable_self_test.config \ | |
| common/boards/configs/disable_target_tools.config" | |
| if [ ${{matrix.arch}} = sandbox ] && [ ${{matrix.defconfig}} = allyesconfig ]; then | |
| KCONFIG_ADD="${KCONFIG_ADD} CONFIG_CONSOLE_DISABLE_INPUT=n CONFIG_MALLOC_LIBC=y" | |
| fi | |
| ./MAKEALL -O ${KBUILD_OUTPUT} -l "" -v 0 ${{matrix.defconfig}} | |
| if [ ${{matrix.arch}} = "riscv" ]; then | |
| cp /usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.bin ${KBUILD_OUTPUT}/ | |
| fi | |
| - name: Populate testfs | |
| run: | | |
| export KBUILD_OUTPUT=build-${{matrix.arch}}-${{matrix.defconfig}} | |
| export KBUILD_DEFCONFIG=${{matrix.defconfig}} | |
| for i in ${{matrix.lgenv}}; do | |
| grep -wq 'testfs' "$i" || continue | |
| # Just use already built dtc | |
| export PATH="$PATH:${KBUILD_OUTPUT}/scripts/dtc/" | |
| exec scripts/generate_testfs.sh | |
| done | |
| - name: labgrid-pytest | |
| if: steps.build.outcome == 'success' | |
| run: | | |
| export KBUILD_OUTPUT=build-${{matrix.arch}}-${{matrix.defconfig}} | |
| for i in ${{matrix.lgenv}}; do | |
| grep -wq '\(QEMUDriver\|ExternalConsoleDriver\):' "$i" || continue | |
| extraargs="${{matrix.lgargs}}" | |
| if grep -wq 'testfs' "$i"; then | |
| extraargs="${extraargs} --fs testfs=${KBUILD_OUTPUT}/testfs" | |
| fi | |
| cfg=$(basename $i .yaml) | |
| echo "Testing $cfg" | |
| labgrid-pytest --lg-env $i test/py --verbosity=1 \ | |
| --junitxml=$cfg.tests.xml --lg-log=log/$cfg $extraargs | |
| done | |
| - name: Print Labgrid Console Output | |
| if: always() | |
| run: | | |
| for i in ${{matrix.lgenv}}; do | |
| grep -wq '\(QEMUDriver\|ExternalConsoleDriver\):' "$i" || continue | |
| cfg=$(basename $i .yaml) | |
| cat log/$cfg/* || true | |
| done | |
| - name: Publish Test Results | |
| uses: EnricoMi/publish-unit-test-result-action@v2 | |
| if: steps.build.outcome == 'success' | |
| with: | |
| check_name: "Test Results (${{matrix.defconfig}})" | |
| files: ./*.tests.xml |