Refactor the features
module
#1651
Workflow file for this run
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: bindgen | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
jobs: | |
rustfmt-clippy: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install stable | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
# TODO: Should ideally be stable, but we use some nightly-only | |
# features. | |
toolchain: nightly | |
override: true | |
components: rustfmt, clippy | |
- name: Run rustfmt | |
uses: actions-rs/cargo@v1 | |
with: | |
command: fmt | |
args: -- --check | |
- name: Run clippy | |
uses: actions-rs/cargo@v1 | |
with: | |
command: clippy | |
args: --tests | |
msrv: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install msrv | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
# MSRV below is documented in Cargo.toml and README.md, please update those if you | |
# change this. | |
toolchain: 1.60.0 | |
override: true | |
- name: Build with msrv | |
run: rm Cargo.lock && cargo +1.60.0 build --lib | |
minimal: | |
runs-on: ubuntu-latest | |
env: | |
RUSTFLAGS: -D warnings | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install stable | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
- name: Check without default features | |
run: cargo check -p bindgen --no-default-features --features=runtime | |
docs: | |
runs-on: ubuntu-latest | |
env: | |
RUSTDOCFLAGS: -D warnings | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install stable | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
- name: Generate documentation for `bindgen` | |
run: cargo doc --document-private-items --no-deps -p bindgen | |
- name: Generate documentation for `bindgen-cli` | |
run: cargo doc --document-private-items --no-deps -p bindgen-cli | |
quickchecking: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install stable | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
# TODO: Actually run quickchecks once `bindgen` is reliable enough. | |
- name: Build quickcheck tests | |
run: cd bindgen-tests/tests/quickchecking && cargo test | |
test-expectations: | |
runs-on: ${{matrix.os}} | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install stable | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
- name: Test expectations | |
run: cd bindgen-tests/tests/expectations && cargo test | |
test: | |
runs-on: ${{matrix.os}} | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
target: | |
- debian: null | |
cross: null | |
rust: null | |
llvm_version: ["5.0", "9.0"] | |
main_tests: [1] | |
release_build: [0, 1] | |
no_default_features: [0, 1] | |
# FIXME: There are no pre-built static libclang libraries, so the | |
# `static` feature is not testable atm. | |
feature_runtime: [0, 1] | |
feature_extra_asserts: [0] | |
include: | |
# Test with extra asserts + docs just with latest llvm versions to | |
# prevent explosion | |
- os: ubuntu-latest | |
llvm_version: "9.0" | |
release_build: 0 | |
no_default_features: 0 | |
feature_extra_asserts: 1 | |
# FIXME: Seems installing multiarch packages fails: | |
# | |
# https://github.com/rust-lang/rust-bindgen/pull/2037/checks?check_run_id=2441799333 | |
# | |
# - os: ubuntu-latest | |
# target: | |
# debian: arm64 | |
# cross: aarch64-linux-gnu | |
# rust: aarch64-unknown-linux-gnu | |
# llvm_version: "9.0" | |
# main_tests: 0 | |
# release_build: 0 | |
# feature_extra_asserts: 0 | |
# Ensure stuff works on macos too | |
- os: macos-latest | |
llvm_version: "9.0" | |
release_build: 0 | |
no_default_features: 0 | |
feature_extra_asserts: 0 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install multiarch packages | |
if: matrix.target.debian | |
run: | | |
sudo apt-get install binfmt-support qemu-user-static gcc-${{matrix.target.cross}} g++-${{matrix.target.cross}} | |
source /etc/lsb-release | |
sudo tee /etc/apt/sources.list <<EOF >/dev/null | |
deb [arch=${{matrix.target.debian}}] http://ports.ubuntu.com/ubuntu-ports/ $DISTRIB_CODENAME main | |
deb [arch=${{matrix.target.debian}}] http://ports.ubuntu.com/ubuntu-ports/ $DISTRIB_CODENAME-updates main | |
deb [arch=${{matrix.target.debian}}] http://ports.ubuntu.com/ubuntu-ports/ $DISTRIB_CODENAME-backports main | |
deb [arch=${{matrix.target.debian}}] http://ports.ubuntu.com/ubuntu-ports/ $DISTRIB_CODENAME-security main | |
EOF | |
sudo dpkg --add-architecture ${{matrix.target.debian}} | |
sudo apt-get update | |
sudo apt-get install libc6:${{matrix.target.debian}} libstdc++6:${{matrix.target.debian}} | |
- name: Install stable | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
target: ${{matrix.target.rust}} | |
override: true | |
- name: Install libtinfo | |
if: matrix.os == 'ubuntu-latest' | |
run: | | |
sudo apt-get update | |
sudo apt-get install libtinfo5 | |
- name: Run all the tests | |
env: | |
GITHUB_ACTIONS_OS: ${{matrix.os}} | |
RUST_CROSS_COMPILER: ${{matrix.target.cross}} | |
RUST_TARGET: ${{matrix.target.rust}} | |
LLVM_VERSION: ${{matrix.llvm_version}} | |
BINDGEN_MAIN_TESTS: ${{matrix.main_tests}} | |
BINDGEN_RELEASE_BUILD: ${{matrix.release_build}} | |
BINDGEN_FEATURE_RUNTIME: ${{matrix.feature_runtime}} | |
BINDGEN_FEATURE_EXTRA_ASSERTS: ${{matrix.feature_extra_asserts}} | |
BINDGEN_NO_DEFAULT_FEATURES: ${{matrix.no_default_features}} | |
run: ./ci/test.sh | |
check-cfg: | |
runs-on: ubuntu-latest | |
env: | |
RUSTFLAGS: -D warnings | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install nightly | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: nightly | |
override: true | |
- name: Check cfg | |
run: cargo check -Z unstable-options -Z check-cfg=features | |
test-book: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install stable | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
# NOTE(emilio): Change deploy-book as well if you change this. | |
- name: Test book | |
run: | | |
curl -L https://github.com/rust-lang/mdBook/releases/download/v0.4.5/mdbook-v0.4.5-x86_64-unknown-linux-gnu.tar.gz | tar xz | |
./mdbook build book | |
./mdbook test book |