Skip to content

Remove coverage badge from README.md #93

Remove coverage badge from README.md

Remove coverage badge from README.md #93

Workflow file for this run

name: CI
on:
pull_request:
push:
branches: [master]
jobs:
lint:
name: Lint (Format, Clippy)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
profile: minimal
components: rustfmt, clippy
- name: Format
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
- name: Clippy
uses: actions-rs/cargo@v1
with:
command: clippy
args: --all-targets -- -D warnings
build:
name: Build (${{matrix.os}}, Rust ${{matrix.rust}})
runs-on: ${{matrix.os}}
needs: lint
strategy:
matrix:
os:
- ubuntu-latest
- windows-latest
- macos-latest
rust:
- stable
- beta
- nightly
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: ${{matrix.rust}}
- name: Build
uses: actions-rs/cargo@v1
with:
command: build
args: --verbose --all
- name: Test
uses: actions-rs/cargo@v1
with:
command: test
args: --verbose
- name: Test (instruction sets)
uses: actions-rs/cargo@v1
with:
command: test
args: --verbose --tests --features "test_instruction_sets"
# Generate assembly for automatic inspection
- name: Emit ASM
uses: actions-rs/cargo@v1
with:
command: rustc
args: --release -- --emit asm
- name: Check ASM
run: |
# Check there are no undefined instructions in the crate.
# This is symptom of unhandled situations leading to panic or slice indices out of bounds
! grep -q 'ud2' target/release/deps/dcv_color_primitives*.s
# Check for accidental performance degradation.
# For example, non-inlined avx2 code might produce function generation for every used intrinsic
! grep -q 'call.*_mm256' target/release/deps/dcv_color_primitives*.s
shell: bash
wasm:
name: Build (WASM)
runs-on: ubuntu-latest
needs: lint
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: wasm32-unknown-unknown
- name: Install wasm-pack
run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
- name: Build
uses: actions-rs/cargo@v1
with:
command: build
- name: Test
run: wasm-pack test --node
sanitizer:
name: Sanitizer
runs-on: ubuntu-latest
needs: lint
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: nightly
target: x86_64-unknown-linux-gnu
- name: Sanitizer
run: cargo +nightly test --verbose --tests --target=x86_64-unknown-linux-gnu
env:
RUSTFLAGS: -Zsanitizer=address
- name: Sanitizer (instruction sets)
run: cargo +nightly test --verbose --tests --target=x86_64-unknown-linux-gnu --features "test_instruction_sets"
env:
RUSTFLAGS: -Zsanitizer=address
coverage:
name: Coverage
runs-on: ubuntu-latest
needs: sanitizer
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- uses: actions-rs/[email protected]
with:
version: '0.22.0'
args: '-l --ignore-panics --tests --fail-under 84 --exclude-files benches --features "test_instruction_sets"'
- name: Upload to codecov.io
uses: codecov/codecov-action@v1