name: E2E overhead
on:
workflow_dispatch:
inputs:
fixture:
description: Digest-pinned workload
required: true
default: ghcr-64m-w64k
type: choice
options:
- datadog-10m-w32m
- ghcr-64m-w64k
- ghcr-256m-w256k
permissions:
contents: read
jobs:
measure:
name: Linux overhead measurement
runs-on: ubuntu-24.04
timeout-minutes: 30
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 - uses: dtolnay/rust-toolchain@d1031067263f94b142dd6c0ce24c5eb9d02d52a0 with:
toolchain: stable
- uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 with:
prefix-key: oci-zero-v2
shared-key: e2e-overhead
cache-bin: false
- name: Install profilers
run: sudo apt-get update && sudo apt-get install --yes time valgrind
- name: Run end-to-end harness
run: bench/e2e-overhead.sh --fixture '${{ inputs.fixture }}'
- name: Upload measurements
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a with:
name: e2e-overhead-${{ inputs.fixture }}-${{ runner.arch }}-callgrind
path: target/e2e-overhead/
if-no-files-found: error