Skip to content

Enable WASM Workloads with Encrypted Layer Support #3186

Enable WASM Workloads with Encrypted Layer Support

Enable WASM Workloads with Encrypted Layer Support #3186

Workflow file for this run

name: image-rs build
on:
push:
branches:
- 'main'
paths:
- 'image-rs/**'
- '.github/workflows/image_rs_build.yml'
- 'Cargo.toml'
- 'Cargo.lock'
pull_request:
paths:
- 'image-rs/**'
- '.github/workflows/image_rs_build.yml'
- 'Cargo.toml'
- 'Cargo.lock'
create:
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
ci:
if: github.event_name != 'push'
name: Check
defaults:
run:
working-directory: ./image-rs
strategy:
fail-fast: false
matrix:
instance:
- ubuntu-24.04
- ubuntu-24.04-s390x
- ubuntu-24.04-arm
runs-on: ${{ matrix.instance }}
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@6c3c2f2c1c457b00c10c4848d6f5491db3b629df # v2.18.0
with:
egress-policy: audit
- name: Code checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 1
- name: Install Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@2b1f5e9b395427c92ee4e3331786ca3c37afe2d7 # v1.16.0
with:
components: rustfmt, clippy
- name: Install nettle-sys building dependencies
run: |
sudo apt update
sudo apt install -y clang llvm pkg-config nettle-dev libprotobuf-dev
- name: Install TPM dependencies
run: |
sudo apt-get install -y libtss2-dev
if: matrix.instance == 'ubuntu-24.04'
- name: Install dm-verity dependencies
run: |
sudo apt-get update
sudo apt-get install -y libdevmapper-dev
if: matrix.instance == 'ubuntu-24.04'
- name: Install cryptsetup
run: |
sudo apt-get install -y libcryptsetup-dev pkg-config
- name: Install cross-compliation support dependencies
run: |
sudo apt install -y gcc-powerpc64le-linux-gnu
rustup target add powerpc64le-unknown-linux-gnu
if: matrix.instance == 'ubuntu-24.04'
- name: Run cargo fmt check
run: cargo fmt -p image-rs -- --check
- name: Run rust lint check (all platforms)
run: |
cargo clippy -p image-rs --all-targets --features=default -- -D warnings
cargo clippy -p image-rs --all-targets --features=kata-cc-rustls-tls --no-default-features -- -D warnings
cargo clippy -p image-rs --all-targets --features=kata-cc-native-tls --no-default-features -- -D warnings
cargo clippy -p image-rs --all-targets --features=kata-cc-native-tls,signature-simple-xrss --no-default-features -- -D warnings
- name: Run rust lint check (x86_64 only)
run: |
cargo clippy -p image-rs --all-targets --features=kata-cc-native-tls --no-default-features -- -D warnings
if: matrix.instance == 'ubuntu-24.04'
- name: Run cargo build
run: cargo build -p image-rs --features default
- name: Run cargo build, cross-compiling for powerpc64le
run: |
sudo -E PATH=$PATH -s RUSTFLAGS=" -C linker=powerpc64le-linux-gnu-gcc" cargo build --target powerpc64le-unknown-linux-gnu -p image-rs --features default
if: matrix.instance == 'ubuntu-24.04'
- name: Run cargo test - default
run: |
sudo -E PATH=$PATH -s cargo test -p image-rs --features default
- name: Run cargo test - kata-cc (rust-tls version) with keywrap-grpc + keywrap-jwe
run: |
sudo -E PATH=$PATH -s cargo test -p image-rs --no-default-features --features=encryption-ring,keywrap-grpc,signature-cosign-rustls,signature-simple,kbs,oci-client/rustls-tls,keywrap-jwe
- name: Run cargo test - kata-cc (native-tls version) with keywrap-grpc + keywrap-jwe
run: |
sudo -E PATH=$PATH -s cargo test -p image-rs --no-default-features --features=encryption-openssl,keywrap-grpc,signature-cosign-native,signature-simple,kbs,oci-client/native-tls,keywrap-jwe
- name: Run cargo test - kata-cc (rust-tls version) with keywrap-ttrpc (default) + keywrap-jwe
run: |
sudo -E PATH=$PATH -s cargo test -p image-rs --no-default-features --features=kata-cc-rustls-tls,keywrap-jwe
- name: Run cargo test - kata-cc (native-tls version) with keywrap-ttrpc (default) + keywrap-jwe
run: |
sudo -E PATH=$PATH -s cargo test -p image-rs --no-default-features --features=kata-cc-native-tls,keywrap-jwe
- name: Clean test cache
run: |
sudo -E PATH=$PATH -s cargo clean
- name: Run cargo test - kata-cc (native-tls version) with keywrap-ttrpc (default) + keywrap-jwe and with signatures from XRSS registry extension
env:
AUTH_PASSWORD: ${{ secrets.SH_ICR_API_KEY }}
run: |
sudo -E PATH=$PATH -s cargo test -p image-rs --no-default-features --features=kata-cc-native-tls,keywrap-jwe,signature-simple-xrss