| 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: |
| # TODO(#1954): These should be run on mac too, but turns out they're |
| # broken. |
| 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 |