mmdbus: improve eSIM detection using EID and handle missing slot paths #12487
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
| # Copyright (c) 2025, Zededa, Inc. | |
| # SPDX-License-Identifier: Apache-2.0 | |
| --- | |
| name: PR build | |
| on: # yamllint disable-line rule:truthy | |
| pull_request: | |
| branches: | |
| - "master" | |
| - "[0-9]+.[0-9]+" | |
| - "[0-9]+.[0-9]+-stable" | |
| - "feature/*" | |
| paths-ignore: | |
| - '.github/**' | |
| - '**/*.md' | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number }} | |
| cancel-in-progress: true | |
| jobs: | |
| packages: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| arch: [ arm64, amd64, riscv64 ] | |
| platform: [ generic ] | |
| include: | |
| - arch: arm64 | |
| platform: nvidia-jp5 | |
| - arch: arm64 | |
| platform: nvidia-jp6 | |
| - arch: amd64 | |
| platform: evaluation | |
| runs-on: ${{ matrix.arch == 'arm64' && 'zededa-ubuntu-2204-arm64' || 'zededa-ubuntu-2204' }} | |
| steps: | |
| - name: Starting Report | |
| run: | | |
| echo Git Ref: ${{ github.event.pull_request.head.ref }} | |
| echo GitHub Event: ${{ github.event_name }} | |
| echo Disk usage | |
| df -h | |
| echo Memory | |
| free -m | |
| - name: Clear repository | |
| run: | | |
| sudo rm -fr "$GITHUB_WORKSPACE" && mkdir "$GITHUB_WORKSPACE" | |
| rm -fr ~/.linuxkit | |
| docker system prune --all --force --volumes | |
| - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
| with: | |
| repository: ${{ github.event.pull_request.head.repo.full_name }} | |
| ref: ${{ github.event.pull_request.head.ref }} | |
| fetch-depth: 0 | |
| - name: Login to Docker Hub | |
| if: ${{ github.event.repository.full_name == 'lf-edge/eve' }} | |
| run: | # Runners must provide default credentials | |
| docker login | |
| - name: ensure zstd for cache # this should be removed once the arm64 VM includes zstd | |
| if: ${{ matrix.os == 'buildjet-4vcpu-ubuntu-2204-arm' || matrix.os == 'arm64-secure' }} | |
| run: | | |
| sudo apt install -y zstd | |
| - name: ensure packages for cross-arch build | |
| if: ${{ matrix.arch == 'riscv64' }} | |
| run: | | |
| APT_INSTALL="sudo apt install -y binfmt-support qemu-user-static" | |
| # the following weird statement is here to speed up the happy path | |
| # if the default server is responding -- we can skip apt update | |
| $APT_INSTALL || { sudo apt update && $APT_INSTALL ; } | |
| # The next step explicitly use actions/cache, rather than actions/cache/save at the end. | |
| # If we rerun a job without changing the sha, we should not have to rebuild anything. | |
| # Since the cache is keyed on the head sha, it will retrieve it. | |
| - name: update linuxkit cache if available | |
| uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 | |
| with: | |
| path: ~/.linuxkit/cache | |
| key: linuxkit-${{ matrix.arch }}-${{ github.event.pull_request.head.sha }}-${{ matrix.platform }} | |
| - name: Build packages ${{ matrix.os }} for ${{ matrix.platform }} | |
| run: | | |
| make V=1 PRUNE=1 PLATFORM=${{ matrix.platform }} ZARCH=${{ matrix.arch }} pkgs | |
| - name: Post package report | |
| run: | | |
| echo Disk usage | |
| df -h | |
| echo Memory | |
| free -m | |
| docker system df | |
| docker system df -v | |
| eve: | |
| needs: packages # all packages for all platforms must be built first | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| arch: [arm64, amd64] | |
| hv: [xen, kvm] | |
| platform: [generic] | |
| include: | |
| - arch: riscv64 | |
| hv: mini | |
| platform: generic | |
| - arch: amd64 | |
| hv: kvm | |
| platform: rt | |
| - arch: arm64 | |
| hv: kvm | |
| platform: nvidia-jp5 | |
| - arch: arm64 | |
| hv: kvm | |
| platform: nvidia-jp6 | |
| - arch: amd64 | |
| hv: kvm | |
| platform: evaluation | |
| - arch: amd64 | |
| hv: k | |
| platform: generic | |
| runs-on: ${{ matrix.arch == 'arm64' && 'zededa-ubuntu-2204-arm64' || 'zededa-ubuntu-2204' }} | |
| steps: | |
| - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
| with: | |
| repository: ${{ github.event.pull_request.head.repo.full_name }} | |
| ref: ${{ github.event.pull_request.head.ref }} | |
| fetch-depth: 0 | |
| - name: Login to Docker Hub | |
| if: ${{ github.event.repository.full_name == 'lf-edge/eve' }} | |
| run: | # Runners must provide default credentials | |
| docker login | |
| # For riscv64, we cross-build on amd64 runners. We need amd64 tool images | |
| # (mkconf, mkimage-raw-efi, etc.) in docker, but riscv64 packages in the cache. | |
| # So: restore amd64 cache -> load tools -> clear -> restore riscv64 cache. | |
| - name: load amd64 tool images for riscv64 cross-build | |
| if: ${{ matrix.arch == 'riscv64' }} | |
| uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 | |
| with: | |
| path: ~/.linuxkit/cache | |
| key: linuxkit-amd64-${{ github.event.pull_request.head.sha }}-generic | |
| fail-on-cache-miss: true | |
| - name: load amd64 tools into docker for riscv64 cross-build | |
| if: ${{ matrix.arch == 'riscv64' }} | |
| run: | | |
| make cache-export-docker-load-all | |
| rm -rf ~/.linuxkit | |
| # Restore the target arch/platform cache. For native builds (amd64, arm64), | |
| # this cache also contains the tool images we need. | |
| # The 'rt' platform has no platform-specific packages, so it uses the generic cache. | |
| - name: update linuxkit cache for target arch | |
| uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 | |
| with: | |
| path: ~/.linuxkit/cache | |
| key: linuxkit-${{ matrix.arch }}-${{ github.event.pull_request.head.sha }}-${{ matrix.platform == 'rt' && 'generic' || matrix.platform }} | |
| fail-on-cache-miss: true | |
| # For native builds, load tool images from the target cache we just restored. | |
| - name: load tool images into docker | |
| if: ${{ matrix.arch != 'riscv64' }} | |
| run: | | |
| make cache-export-docker-load-all | |
| - name: set environment | |
| env: | |
| PR_ID: ${{ github.event.pull_request.number }} | |
| run: | | |
| COMMIT_ID=$(git describe --abbrev=8 --always) | |
| echo "VERSION=0.0.0-pr$PR_ID-$COMMIT_ID" >> $GITHUB_ENV | |
| echo "TAG=evebuild/pr:$PR_ID" >> $GITHUB_ENV | |
| echo "ARCH=${{ matrix.arch }}" >> "$GITHUB_ENV" | |
| - name: Build EVE ${{ matrix.hv }}-${{ matrix.arch }}-${{ matrix.platform }} | |
| run: | | |
| make V=1 ROOTFS_VERSION="$VERSION" PLATFORM=${{ matrix.platform }} HV=${{ matrix.hv }} ZARCH=${{ matrix.arch }} eve | |
| - name: Post eve build report | |
| run: | | |
| echo Disk usage | |
| df -h | |
| echo Memory | |
| free -m | |
| docker system df | |
| docker system df -v | |
| - name: Export docker container | |
| run: | | |
| make cache-export ZARCH=${{ matrix.arch }} IMAGE=lfedge/eve:$VERSION-${{ matrix.hv }} OUTFILE=eve-${{ matrix.hv }}-${{ matrix.arch }}-${{ matrix.platform }}.tar IMAGE_NAME=$TAG-${{ matrix.hv }}-${{ matrix.arch }} | |
| - name: Upload EVE ${{ matrix.hv }}-${{ matrix.arch }}-${{ matrix.platform }} | |
| uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 | |
| with: | |
| name: eve-${{ matrix.hv }}-${{ matrix.arch }}-${{ matrix.platform }} | |
| path: eve-${{ matrix.hv }}-${{ matrix.arch }}-${{ matrix.platform }}.tar | |
| - name: Clean EVE ${{ matrix.hv }}-${{ matrix.arch }}-${{ matrix.platform }} | |
| run: | | |
| make clean | |
| docker rmi "$TAG-${{ matrix.hv }}-${{ matrix.arch }}" "lfedge/eve:$VERSION-${{ matrix.hv }}" "lfedge/eve:$VERSION-${{ matrix.hv }}-${{ matrix.arch }}" ||: | |
| - name: Post clean eve ${{ matrix.hv }}-${{ matrix.arch }}-${{ matrix.platform }} report | |
| run: | | |
| echo Disk usage | |
| df -h | |
| echo Memory | |
| free -m | |
| docker system df | |
| docker system df -v | |
| - name: Clean | |
| if: ${{ always() }} | |
| run: | | |
| make clean | |
| docker system prune -f -a --volumes | |
| rm -rf ~/.linuxkit |