Skip to content

[uniffi] Expose RosterUpdate on Commit (#127) #745

[uniffi] Expose RosterUpdate on Commit (#127)

[uniffi] Expose RosterUpdate on Commit (#127) #745

Workflow file for this run

name: Native
on: [push, pull_request]
env:
CARGO_TERM_COLOR: always
SSH_AUTH_SOCK: /tmp/ssh_agent.sock
jobs:
BuildAndTest:
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: arduino/setup-protoc@v2
with:
version: "25.x"
repo-token: ${{ secrets.GITHUB_TOKEN }}
- uses: dtolnay/rust-toolchain@stable
- uses: ilammy/setup-nasm@v1
if: runner.os == 'Windows'
- run: echo "VCPKG_ROOT=$env:VCPKG_INSTALLATION_ROOT" | Out-File -FilePath $env:GITHUB_ENV -Append
if: runner.os == 'Windows'
- run: vcpkg install openssl:x64-windows-static-md sqlite3:x64-windows-static-md
if: runner.os == 'Windows'
- run: echo "OPENSSL_DIR=C:/vcpkg/packages/openssl_x64-windows-static-md" | Out-File -FilePath $env:GITHUB_ENV -Append
if: runner.os == 'Windows'
- run: curl -o C:/cacert.pem https://curl.se/ca/cacert.pem
if: runner.os == 'Windows'
- run: echo "SSL_CERT_FILE=C:/cacert.pem" | Out-File -FilePath $env:GITHUB_ENV -Append
if: runner.os == 'Windows'
- name: Rust Fmt
run: cargo fmt --all -- --check
- name: Clippy Full RFC Compliance
run: cargo clippy --all-targets --all-features --workspace -- -D warnings
- name: Clippy Bare Bones
run: cargo clippy --all-targets --no-default-features --features std,test_util --workspace -- -D warnings
- name: Test Full RFC Compliance
run: cargo test --all-features --verbose --workspace
- name: Test Bare Bones
run: cargo test --no-default-features --features std,test_util --verbose --workspace
- name: Test Async Full RFC
run: cargo test --lib --test '*' --verbose --features test_util -p mls-rs
env:
RUSTFLAGS: '--cfg mls_build_async'
- name: Test Async Bare Bones
run: cargo test --no-default-features --lib --test '*' --features std,test_util --verbose -p mls-rs
env:
RUSTFLAGS: '--cfg mls_build_async'
- name: Examples
working-directory: mls-rs
run: cargo run --example basic_usage
CodeCoverage:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@nightly
- name: Setup code coverage
run: cargo install cargo-llvm-cov
- name: Run code coverage
# Using `cargo llvm-cov show-env` lets us capture coverage
# information from Python integration tests.
run: |
source <(cargo llvm-cov show-env --export-prefix)
cargo llvm-cov clean --workspace
cargo test --features "test_util"
cargo llvm-cov report --lcov --output-path lcov.info
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v3
with:
files: lcov.info
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}