Handle platforms where c_int is not i32 #259
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: [push, pull_request] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
target: | |
- thumbv7em-none-eabi | |
- thumbv6m-none-eabi # like the Cortex-M0+ | |
- x86_64-unknown-linux-gnu | |
- x86_64-pc-windows-msvc | |
steps: | |
- name: Install build dependencies | |
shell: bash | |
run: | | |
env && pwd && sudo apt-get update -y -qq && sudo apt-get install -y -qq llvm libc6-dev-i386 libclang-dev | |
- uses: fiam/arm-none-eabi-gcc@v1 | |
with: | |
release: "9-2020-q2" | |
- name: Install rust | |
run: rustup show | |
- uses: actions/checkout@v3 | |
- name: Check | |
run: | | |
cargo check --package littlefs2-core | |
cargo check --package littlefs2-core --features heapless-bytes03 | |
cargo check --package littlefs2-core --features heapless-bytes04 | |
cargo check --package littlefs2-core --features heapless07 | |
cargo check --package littlefs2-core --features heapless08 | |
cargo check --package littlefs2-core --features serde | |
cargo check --package littlefs2-core --all-features | |
cargo check --workspace --all-targets | |
cargo check --workspace --all-targets --all-features | |
cargo check --workspace --all-targets --no-default-features | |
cargo check --workspace --all-targets --no-default-features --features serde | |
- name: Build | |
run: cargo build --workspace --release --verbose | |
- name: Run clippy | |
if: matrix.target == 'x86_64-unknown-linux-gnu' | |
run: cargo clippy --workspace --all-features --all-targets -- --deny warnings | |
- name: Check code format | |
if: matrix.target == 'x86_64-unknown-linux-gnu' | |
run: cargo fmt --all -- --check | |
- name: Run tests | |
if: matrix.target == 'x86_64-unknown-linux-gnu' | |
run: > | |
cargo test --workspace && | |
cargo test --workspace --release | |
- name: Check documentation | |
if: matrix.target == 'x86_64-unknown-linux-gnu' | |
run: RUSTDOCFLAGS="-D warnings" cargo doc --no-deps --workspace | |
build-avr: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install build dependencies | |
shell: bash | |
run: | | |
env && pwd && sudo apt-get update -y -qq && sudo apt-get install -y -qq llvm gcc-avr avr-libc libclang-dev | |
- name: Install rust | |
run: rustup toolchain install --profile minimal --component=rust-src nightly | |
- uses: actions/checkout@v3 | |
- name: Configure target | |
run: | | |
cat <<EOT > avr-atmega328p.json | |
{ | |
"arch": "avr", | |
"atomic-cas": false, | |
"cpu": "atmega328p", | |
"data-layout": "e-P1-p:16:8-i8:8-i16:8-i32:8-i64:8-f32:8-f64:8-n8-a:8", | |
"eh-frame-header": false, | |
"exe-suffix": ".elf", | |
"late-link-args": { | |
"gcc": [ | |
"-lgcc" | |
] | |
}, | |
"linker": "avr-gcc", | |
"llvm-target": "avr-unknown-unknown", | |
"max-atomic-width": 8, | |
"no-default-libraries": false, | |
"pre-link-args": { | |
"gcc": [ | |
"-mmcu=atmega328p" | |
] | |
}, | |
"relocation-model": "static", | |
"target-c-int-width": "16", | |
"target-pointer-width": "16" | |
} | |
EOT | |
- name: Patch delog | |
run: echo 'delog = { version = "0.1.6", git = "https://github.com/LechevSpace/delog.git", rev = "e83f3fd" }' >> Cargo.toml | |
- name: Build avr | |
run: cargo +nightly build -Z build-std=core --target=./avr-atmega328p.json --workspace --release |