Skip to content

Merge pull request #81 from Freax13/feature/cet-ibt #222

Merge pull request #81 from Freax13/feature/cet-ibt

Merge pull request #81 from Freax13/feature/cet-ibt #222

Workflow file for this run

name: Build
on:
push:
branches:
- "main"
tags:
- "*"
pull_request:
jobs:
check_formatting:
name: "Check Formatting"
runs-on: ubuntu-latest
timeout-minutes: 2
steps:
- uses: actions/checkout@v4
- run: cargo fmt --all -- --check
working-directory: common
- run: cargo fmt --all -- --check
working-directory: host
- run: cargo fmt --all -- --check
working-directory: tee
build:
strategy:
matrix:
profile:
- development
- release
- kasan
- profiling
name: "Build"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
with:
key: ${{ matrix.profile }}
workspaces: |
common
host
tee
- name: "Build"
run: make
env:
PROFILE: ${{ matrix.profile }}
# Build the CLI with various feature configurations.
build-cli:
strategy:
matrix:
snp:
- true
- false
tdx:
- true
- false
insecure:
- true
- false
name: "Build CLI"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
with:
key: build-cli-${{ matrix.snp }}-${{ matrix.tdx }}-${{ matrix.insecure }}
workspaces: |
host
- name: "Build"
run: make cli
env:
TEE_SNP: ${{ matrix.snp }}
TEE_TDX: ${{ matrix.tdx }}
TEE_INSECURE: ${{ matrix.insecure }}
build-cli-on-stable:
name: "Build CLI on stable"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
with:
key: build-cli-stable
workspaces: |
host
- name: "Build"
run: cargo +stable build --all-features
working-directory: host/mushroom
clippy:
name: "Clippy"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
with:
key: clippy
workspaces: |
common
host
tee
- name: "Check common"
run: cargo clippy --workspace -- -D warnings
working-directory: common
- name: "Check host"
run: cargo clippy --workspace -- -D warnings
working-directory: host
- name: "Check tee"
run: cargo clippy --workspace --exclude example -- -D warnings
working-directory: tee
test-linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
with:
key: test
workspaces: |
common
host
tee
- name: "Test"
run: cargo test -p tests
working-directory: tee
test:
strategy:
matrix:
profile:
- development
- release
- kasan
time_backend:
- fake
- real
test_target:
- amd64
- i386
tee:
- snp
- tdx
- insecure
exclude:
# KASAN isn't (yet) supported on TDX.
- profile: kasan
tee: tdx
name: "Test"
runs-on: ${{ matrix.tee != 'insecure' && matrix.tee || 'self-hosted' }}
steps:
- uses: actions/checkout@v4
- name: "Test"
run: make test
env:
PROFILE: ${{ matrix.profile }}
TIME_BACKEND: ${{ matrix.time_backend }}
TEST_TARGET: ${{ matrix.test_target }}
TEE: ${{ matrix.tee }}
integration-test:
strategy:
matrix:
tee:
- snp
- tdx
name: "Integration Test"
runs-on: ${{ matrix.tee }}
steps:
- uses: actions/checkout@v4
- name: "Build & Run Example Init Binary"
run: make run-example
env:
PROFILE: release
TEE: ${{ matrix.tee }}