Skip to content

Update elliptic-curve and shlex (#490) #1078

Update elliptic-curve and shlex (#490)

Update elliptic-curve and shlex (#490) #1078

Workflow file for this run

name: ci
on:
push:
branches:
- 'main'
pull_request:
env:
CARGO_INCREMENTAL: 0
RUSTFLAGS: "-Dwarnings"
CARGO_UNSTABLE_SPARSE_REGISTRY: true
jobs:
lint:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- uses: r7kamura/rust-problem-matchers@v1
- run: cargo fmt --all -- --check
- uses: xt0rted/markdownlint-problem-matcher@v2
- uses: DavidAnson/markdownlint-cli2-action@v14
with:
globs: "**/*.md"
deny:
strategy:
matrix:
check:
- advisories
- bans licenses sources
runs-on: ubuntu-22.04
needs:
- "lint"
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: "true"
- uses: EmbarkStudios/cargo-deny-action@v1
with:
command: check ${{ matrix.check }}
sort:
runs-on: ubuntu-22.04
needs:
- "lint"
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- run: cargo install cargo-sort
- run: cargo sort --workspace --check >/dev/null
clippy:
runs-on: ubuntu-22.04
needs:
- "lint"
strategy:
matrix:
rust:
- stable
- beta
# Prevent beta warnings from causing CI failure
continue-on-error: ${{ matrix.rust == 'beta' }}
steps:
- uses: actions/checkout@v4
- uses: mobilecoinfoundation/actions/dcap-libs@main
with:
version: 1.19.100.3-jammy1
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
components: clippy
- uses: r7kamura/rust-problem-matchers@v1
- run: cargo +${{ matrix.rust }} clippy --all --all-features -- -D warnings -Aclippy::non_canonical_clone_impl
build:
runs-on: ubuntu-22.04
needs:
- "lint"
strategy:
matrix:
rust:
- stable
- beta
- nightly-2023-10-01
steps:
- uses: actions/checkout@v4
- uses: mobilecoinfoundation/actions/sgxsdk@main
with:
version: 2.22.100.3
- uses: mobilecoinfoundation/actions/dcap-libs@main
with:
version: 1.19.100.3-jammy1
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
- uses: r7kamura/rust-problem-matchers@v1
- run: cargo +${{ matrix.rust }} build --release --locked
build-all-features:
runs-on: ubuntu-22.04
needs:
- "lint"
strategy:
matrix:
rust:
- stable
- beta
- nightly-2023-10-01
steps:
- uses: actions/checkout@v4
- uses: mobilecoinfoundation/actions/sgxsdk@main
with:
version: 2.22.100.3
- uses: mobilecoinfoundation/actions/dcap-libs@main
with:
version: 1.19.100.3-jammy1
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
- uses: r7kamura/rust-problem-matchers@v1
- run: cargo +${{ matrix.rust }} build --release --locked --all-features
test:
runs-on: ubuntu-22.04
needs:
- "lint"
strategy:
matrix:
rust:
- stable
- beta
- nightly-2023-10-01
steps:
- uses: actions/checkout@v4
- uses: mobilecoinfoundation/actions/sgxsdk@main
with:
version: 2.22.100.3
- uses: mobilecoinfoundation/actions/dcap-libs@main
with:
version: 1.19.100.3-jammy1
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
- uses: r7kamura/rust-problem-matchers@v1
- name: Run tests
# For some reason `SGX_AESM_ADDR` is set to 1 in the github runners.
# Not seeing it documented here, https://github.com/actions/runner-images/blob/main/images/linux/Ubuntu2004-Readme.md
# We can't just set to 0 or "" as the SGX code looks for it being set, not what the value is :(
run: unset SGX_AESM_ADDR && cargo +${{ matrix.rust }} test --release --features "sim alloc" --locked
doc:
runs-on: ubuntu-22.04
needs:
- "lint"
strategy:
matrix:
rust:
- stable
- beta
# Prevent beta warnings from causing CI failure
continue-on-error: ${{ matrix.rust == 'beta' }}
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
- uses: r7kamura/rust-problem-matchers@v1
- run: cargo +${{ matrix.rust }} doc --release --no-deps --features sim
coverage:
runs-on: ubuntu-22.04
needs:
- "lint"
steps:
- uses: actions/checkout@v4
- uses: mobilecoinfoundation/actions/sgxsdk@main
with:
version: 2.22.100.3
- uses: mobilecoinfoundation/actions/dcap-libs@main
with:
version: 1.19.100.3-jammy1
- uses: dtolnay/rust-toolchain@stable
with:
components: llvm-tools-preview
- uses: taiki-e/install-action@cargo-llvm-cov
- name: Run tests with coverage
# For some reason `SGX_AESM_ADDR` is set to 1 in the github runners.
# Not seeing it documented here, https://github.com/actions/runner-images/blob/main/images/linux/Ubuntu2004-Readme.md
# We can't just set to 0 or "" as the SGX code looks for it being set, not what the value is :(
# The FFI bindings crates always report 100% because they have no code
run: unset SGX_AESM_ADDR && cargo llvm-cov --locked --features sim --ignore-filename-regex '\/sys/src/lib\.rs' --workspace --lcov --output-path lcov.info
- uses: codecov/codecov-action@v3
with:
files: lcov.info
# This job ensures that the specified crates are able to build without alloc. By proxy this also ensures that they
# build with no_std
build-no-alloc:
runs-on: ubuntu-22.04
needs:
- "lint"
strategy:
matrix:
target:
- thumbv6m-none-eabi
- thumbv7m-none-eabi
- thumbv8m.main-none-eabi
- aarch64-linux-android
- aarch64-apple-ios
- wasm32-unknown-unknown
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly-2023-10-01
targets: ${{ matrix.target }},x86_64-unknown-linux-gnu
components: rust-src
- uses: r7kamura/rust-problem-matchers@v1
- name: Build types with no alloc crate on various platforms
# In the unlikely event that the target was installed with rustup, this would error out with duplicate core
# symbols due to `-Z build-std=core`.
run: |
cargo metadata --no-deps --format-version=1 | \
jq -r '.packages[].name' | \
grep -e types | \
xargs -n1 sh -c 'cargo +nightly-2023-10-01 build -Z build-std=core --target ${{ matrix.target }} -p $0 --locked || exit 255'