Update nitro enclaves support #155
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: Code Quality | |
| on: [pull_request] | |
| jobs: | |
| code-quality-linux-x86_64: | |
| name: libkrun (Linux x86_64) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup build environment | |
| uses: ./.github/actions/setup-build-env | |
| - name: Create a fake init | |
| run: touch init/init | |
| - name: Clippy (default) | |
| run: cargo clippy --locked -- -D warnings | |
| - name: Clippy (amd-sev) | |
| run: cargo clippy --locked --features amd-sev -- -D warnings | |
| - name: Clippy (tdx) | |
| run: cargo clippy --locked --features tdx -- -D warnings | |
| - name: Clippy (net+blk+gpu+snd+input) | |
| run: cargo clippy --locked --features net,blk,gpu,snd,input -- -D warnings | |
| code-quality-linux-aarch64: | |
| name: libkrun (Linux aarch64) | |
| runs-on: ubuntu-24.04-arm | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup build environment | |
| uses: ./.github/actions/setup-build-env | |
| - name: Create a fake init | |
| run: touch init/init | |
| - name: Clippy (default) | |
| run: cargo clippy --locked -- -D warnings | |
| - name: Clippy (net+blk+gpu+snd+input) | |
| run: cargo clippy --locked --features net,blk,gpu,snd,input -- -D warnings | |
| code-quality-macos: | |
| name: libkrun (macOS aarch64) | |
| runs-on: macos-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup build environment | |
| uses: ./.github/actions/setup-build-env | |
| - name: Create a fake init | |
| run: touch init/init | |
| - name: Clippy (efi+gpu) | |
| run: cargo clippy --locked --features efi,gpu -- -D warnings | |
| code-quality-examples: | |
| name: ${{ matrix.name }} | |
| strategy: | |
| matrix: | |
| include: | |
| - name: "Examples (Linux x86_64)" | |
| runner: ubuntu-latest | |
| - name: "Examples (Linux aarch64)" | |
| runner: ubuntu-24.04-arm | |
| runs-on: ${{ matrix.runner }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup build environment | |
| uses: ./.github/actions/setup-build-env | |
| - name: Cache GLib 2.82 + GTK 4.16 build | |
| uses: actions/cache@v4 | |
| id: gtk-cache | |
| with: | |
| path: ~/gtk-prefix | |
| key: ${{ runner.os }}-${{ runner.arch }}-gtk-4.16.0 | |
| - name: Install GTK system dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -yqq --no-install-recommends \ | |
| libffi-dev \ | |
| libmount-dev \ | |
| libpcre2-dev \ | |
| zlib1g-dev \ | |
| libcairo2-dev \ | |
| libpango1.0-dev \ | |
| libgdk-pixbuf-2.0-dev \ | |
| libgraphene-1.0-dev \ | |
| libepoxy-dev \ | |
| libxkbcommon-dev \ | |
| wayland-protocols \ | |
| libwayland-dev | |
| - name: Add GLib + GTK paths to environment | |
| run: | | |
| case "$(uname -m)" in | |
| x86_64) | |
| GTK_PKG_CONFIG_PATH="$HOME/gtk-prefix/lib/x86_64-linux-gnu/pkgconfig" | |
| GTK_LIB_PATH="$HOME/gtk-prefix/lib/x86_64-linux-gnu" ;; | |
| aarch64) | |
| GTK_PKG_CONFIG_PATH="$HOME/gtk-prefix/lib/aarch64-linux-gnu/pkgconfig" | |
| GTK_LIB_PATH="$HOME/gtk-prefix/lib/aarch64-linux-gnu" ;; | |
| *) | |
| echo "ERROR: Unsupported architecture: $(uname -m)" | |
| exit 1 ;; | |
| esac | |
| echo "PKG_CONFIG_PATH=$GTK_PKG_CONFIG_PATH:$PKG_CONFIG_PATH" >> $GITHUB_ENV | |
| echo "LD_LIBRARY_PATH=$GTK_LIB_PATH:$LD_LIBRARY_PATH" >> $GITHUB_ENV | |
| - name: Build and install GTK 4.16 from source | |
| if: steps.gtk-cache.outputs.cache-hit != 'true' | |
| run: | | |
| # Install build-only dependencies | |
| sudo apt-get install -yqq --no-install-recommends \ | |
| build-essential \ | |
| meson \ | |
| ninja-build | |
| # Build GLib first | |
| cd /tmp | |
| curl -L -o glib-2.82.2.tar.xz https://download.gnome.org/sources/glib/2.82/glib-2.82.2.tar.xz | |
| tar -xf glib-2.82.2.tar.xz | |
| cd glib-2.82.2 | |
| meson setup builddir --prefix=$HOME/gtk-prefix --buildtype=release | |
| meson compile -C builddir | |
| meson install -C builddir | |
| # Build GTK | |
| cd /tmp | |
| curl -L -o gtk-4.16.0.tar.xz https://download.gnome.org/sources/gtk/4.16/gtk-4.16.0.tar.xz | |
| tar -xf gtk-4.16.0.tar.xz | |
| cd gtk-4.16.0 | |
| meson setup builddir --prefix=$HOME/gtk-prefix --buildtype=release \ | |
| -Dmedia-gstreamer=disabled \ | |
| -Dintrospection=disabled \ | |
| -Dx11-backend=false \ | |
| -Dprint-cups=disabled \ | |
| -Dcloudproviders=disabled \ | |
| -Dtracker=disabled \ | |
| -Dcolord=disabled \ | |
| -Dsysprof=disabled \ | |
| -Dvulkan=disabled | |
| meson compile -C builddir | |
| meson install -C builddir | |
| - name: Build and install libkrun to local prefix | |
| run: | | |
| mkdir -p $HOME/libkrun-prefix | |
| GPU=1 NET=1 INPUT=1 PREFIX=$HOME/libkrun-prefix make && PREFIX=$HOME/libkrun-prefix make install | |
| - name: Clippy (examples workspace) | |
| run: | | |
| cd examples | |
| PKG_CONFIG_PATH="$HOME/libkrun-prefix/lib64/pkgconfig:$PKG_CONFIG_PATH" LD_LIBRARY_PATH="$HOME/libkrun-prefix/lib64:$LD_LIBRARY_PATH" cargo clippy --locked -- -D warnings |