d3af2f2d80
This commit merges the `apdu` and `response` modules: the responses are APDU responses, and so the two are related. This also moves the `trace` logging into the APDU type, which allows it to display `Debug` output for APDUs and responses, which makes it easier to understand what's going on (and will be even better once instructions are converted into an enum so you can actually see what's happening).
176 lines
3.8 KiB
YAML
176 lines
3.8 KiB
YAML
# Based on https://github.com/actions-rs/meta/blob/master/recipes/quickstart.md
|
|
|
|
on:
|
|
pull_request: {}
|
|
push:
|
|
branches: master
|
|
|
|
name: Rust
|
|
|
|
jobs:
|
|
check:
|
|
name: Check
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v1
|
|
|
|
- name: Install stable toolchain
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
override: true
|
|
|
|
- name: Install libpcsclite-dev
|
|
run: sudo apt-get install libpcsclite-dev
|
|
|
|
- name: Run cargo check
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: check
|
|
|
|
# Need to install `libpscslite-dev` on Linux
|
|
linux:
|
|
name: Test Suite
|
|
strategy:
|
|
matrix:
|
|
toolchain:
|
|
- 1.39.0
|
|
- stable
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v1
|
|
|
|
- name: Install stable toolchain
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: ${{ matrix.toolchain }}
|
|
override: true
|
|
|
|
- name: Install libpcsclite-dev
|
|
run: sudo apt-get install libpcsclite-dev
|
|
|
|
- name: Run cargo test
|
|
uses: actions-rs/cargo@v1
|
|
env:
|
|
RUSTFLAGS: -D warnings
|
|
with:
|
|
command: test
|
|
args: --release
|
|
|
|
- name: Run cargo build --all-features
|
|
uses: actions-rs/cargo@v1
|
|
env:
|
|
RUSTFLAGS: -D warnings
|
|
with:
|
|
command: build
|
|
args: --all-features
|
|
|
|
test:
|
|
name: Test Suite
|
|
strategy:
|
|
matrix:
|
|
platform:
|
|
- macos-latest
|
|
- windows-latest
|
|
toolchain:
|
|
- 1.39.0
|
|
- stable
|
|
runs-on: ${{ matrix.platform }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v1
|
|
|
|
- name: Install stable toolchain
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: ${{ matrix.toolchain }}
|
|
override: true
|
|
|
|
- name: Run cargo test
|
|
uses: actions-rs/cargo@v1
|
|
env:
|
|
RUSTFLAGS: -D warnings
|
|
with:
|
|
command: test
|
|
args: --release
|
|
|
|
- name: Run cargo build --all-features
|
|
uses: actions-rs/cargo@v1
|
|
env:
|
|
RUSTFLAGS: -D warnings
|
|
with:
|
|
command: build
|
|
args: --all-features
|
|
|
|
fmt:
|
|
name: Rustfmt
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v1
|
|
|
|
- name: Install stable toolchain
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
override: true
|
|
|
|
- name: Install rustfmt
|
|
run: rustup component add rustfmt
|
|
|
|
- name: Run cargo fmt
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: fmt
|
|
args: --all -- --check
|
|
|
|
clippy:
|
|
name: Clippy
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v1
|
|
|
|
- name: Install stable toolchain
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
override: true
|
|
|
|
- name: Install libpcsclite-dev
|
|
run: sudo apt-get install libpcsclite-dev
|
|
|
|
- name: Install clippy
|
|
run: rustup component add clippy
|
|
|
|
- name: Run cargo clippy
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: clippy
|
|
args: --all-features -- -D warnings
|
|
|
|
# TODO: use actions-rs/audit-check
|
|
security_audit:
|
|
name: Security Audit
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v1
|
|
|
|
- name: Install stable toolchain
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
override: true
|
|
|
|
- name: Install cargo audit
|
|
run: cargo install cargo-audit
|
|
|
|
- name: Run cargo audit
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: audit
|
|
args: --deny-warnings
|