ic-memory 0.15.0

Durable stable-memory allocation governance for Internet Computer canisters
Documentation
name: CI

on:
  pull_request:
  push:
    branches:
      - main

jobs:
  test:
    runs-on: ubuntu-latest
    env:
      RUSTUP_TOOLCHAIN: 1.97.1
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: '3.12'
      - run: make test-release-flow
      - uses: dtolnay/rust-toolchain@1.97.1
        with:
          components: clippy, rustfmt
          targets: wasm32-unknown-unknown
      - run: cargo fmt --check
      - run: cargo clippy --all-targets -- -D warnings
      - run: cargo test --test runtime_macros -- --test-threads=1
      - run: cargo test -- --test-threads=1
      - run: cargo test --doc
      - run: cargo check --target wasm32-unknown-unknown --tests
      - name: Enforce bootstrap and diagnostics raw Wasm sizes
        run: |
          cargo build --profile wasm-size --target wasm32-unknown-unknown \
            --example wasm-core-size-probe \
            --example wasm-diagnostics-size-probe \
            --example wasm-key-only-size-probe \
            --example wasm-admission-size-probe \
            --example wasm-runtime-integration-size-probe

          core_wasm=target/wasm32-unknown-unknown/wasm-size/examples/wasm_core_size_probe.wasm
          core_bytes=$(wc -c < "$core_wasm")
          core_budget=260000
          echo "Core raw Wasm: $core_bytes bytes (budget: $core_budget bytes)"
          test "$core_bytes" -le "$core_budget"

          diagnostics_wasm=target/wasm32-unknown-unknown/wasm-size/examples/wasm_diagnostics_size_probe.wasm
          diagnostics_bytes=$(wc -c < "$diagnostics_wasm")
          diagnostics_budget=315000
          echo "Diagnostics raw Wasm: $diagnostics_bytes bytes (budget: $diagnostics_budget bytes)"
          test "$diagnostics_bytes" -le "$diagnostics_budget"

          key_only_wasm=target/wasm32-unknown-unknown/wasm-size/examples/wasm_key_only_size_probe.wasm
          key_only_bytes=$(wc -c < "$key_only_wasm")
          key_only_budget=260000
          echo "Key-only raw Wasm: $key_only_bytes bytes (budget: $key_only_budget bytes)"
          test "$key_only_bytes" -le "$key_only_budget"

          admission_wasm=target/wasm32-unknown-unknown/wasm-size/examples/wasm_admission_size_probe.wasm
          admission_bytes=$(wc -c < "$admission_wasm")
          admission_budget=260000
          echo "Admission raw Wasm: $admission_bytes bytes (budget: $admission_budget bytes)"
          test "$admission_bytes" -le "$admission_budget"

          integration_wasm=target/wasm32-unknown-unknown/wasm-size/examples/wasm_runtime_integration_size_probe.wasm
          integration_bytes=$(wc -c < "$integration_wasm")
          integration_budget=270000
          echo "Runtime integration raw Wasm: $integration_bytes bytes (budget: $integration_budget bytes)"
          test "$integration_bytes" -le "$integration_budget"
      - run: cargo package

  msrv:
    runs-on: ubuntu-latest
    env:
      RUSTUP_TOOLCHAIN: 1.88.0
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@1.88.0
      - run: cargo check --all-targets