112a9d9c8Sopenharmony_ciname: bindgen 212a9d9c8Sopenharmony_ci 312a9d9c8Sopenharmony_cion: 412a9d9c8Sopenharmony_ci push: 512a9d9c8Sopenharmony_ci branches: 612a9d9c8Sopenharmony_ci - main 712a9d9c8Sopenharmony_ci pull_request: 812a9d9c8Sopenharmony_ci branches: 912a9d9c8Sopenharmony_ci - main 1012a9d9c8Sopenharmony_ci 1112a9d9c8Sopenharmony_cijobs: 1212a9d9c8Sopenharmony_ci rustfmt-clippy: 1312a9d9c8Sopenharmony_ci runs-on: ubuntu-latest 1412a9d9c8Sopenharmony_ci 1512a9d9c8Sopenharmony_ci steps: 1612a9d9c8Sopenharmony_ci - uses: actions/checkout@v3 1712a9d9c8Sopenharmony_ci 1812a9d9c8Sopenharmony_ci - name: Install stable 1912a9d9c8Sopenharmony_ci uses: actions-rs/toolchain@v1 2012a9d9c8Sopenharmony_ci with: 2112a9d9c8Sopenharmony_ci profile: minimal 2212a9d9c8Sopenharmony_ci # TODO: Should ideally be stable, but we use some nightly-only 2312a9d9c8Sopenharmony_ci # features. 2412a9d9c8Sopenharmony_ci toolchain: nightly 2512a9d9c8Sopenharmony_ci override: true 2612a9d9c8Sopenharmony_ci components: rustfmt, clippy 2712a9d9c8Sopenharmony_ci 2812a9d9c8Sopenharmony_ci - name: Run rustfmt 2912a9d9c8Sopenharmony_ci uses: actions-rs/cargo@v1 3012a9d9c8Sopenharmony_ci with: 3112a9d9c8Sopenharmony_ci command: fmt 3212a9d9c8Sopenharmony_ci args: -- --check 3312a9d9c8Sopenharmony_ci 3412a9d9c8Sopenharmony_ci - name: Run clippy 3512a9d9c8Sopenharmony_ci uses: actions-rs/cargo@v1 3612a9d9c8Sopenharmony_ci with: 3712a9d9c8Sopenharmony_ci command: clippy 3812a9d9c8Sopenharmony_ci args: --tests 3912a9d9c8Sopenharmony_ci 4012a9d9c8Sopenharmony_ci msrv: 4112a9d9c8Sopenharmony_ci runs-on: ubuntu-latest 4212a9d9c8Sopenharmony_ci steps: 4312a9d9c8Sopenharmony_ci - uses: actions/checkout@v3 4412a9d9c8Sopenharmony_ci 4512a9d9c8Sopenharmony_ci - name: Install msrv 4612a9d9c8Sopenharmony_ci uses: actions-rs/toolchain@v1 4712a9d9c8Sopenharmony_ci with: 4812a9d9c8Sopenharmony_ci profile: minimal 4912a9d9c8Sopenharmony_ci # MSRV below is documented in Cargo.toml and README.md, please update those if you 5012a9d9c8Sopenharmony_ci # change this. 5112a9d9c8Sopenharmony_ci toolchain: 1.60.0 5212a9d9c8Sopenharmony_ci override: true 5312a9d9c8Sopenharmony_ci 5412a9d9c8Sopenharmony_ci - name: Build with msrv 5512a9d9c8Sopenharmony_ci run: rm Cargo.lock && cargo +1.60.0 build --lib 5612a9d9c8Sopenharmony_ci 5712a9d9c8Sopenharmony_ci quickchecking: 5812a9d9c8Sopenharmony_ci runs-on: ubuntu-latest 5912a9d9c8Sopenharmony_ci steps: 6012a9d9c8Sopenharmony_ci - uses: actions/checkout@v3 6112a9d9c8Sopenharmony_ci 6212a9d9c8Sopenharmony_ci - name: Install stable 6312a9d9c8Sopenharmony_ci uses: actions-rs/toolchain@v1 6412a9d9c8Sopenharmony_ci with: 6512a9d9c8Sopenharmony_ci profile: minimal 6612a9d9c8Sopenharmony_ci toolchain: stable 6712a9d9c8Sopenharmony_ci override: true 6812a9d9c8Sopenharmony_ci 6912a9d9c8Sopenharmony_ci # TODO: Actually run quickchecks once `bindgen` is reliable enough. 7012a9d9c8Sopenharmony_ci - name: Build quickcheck tests 7112a9d9c8Sopenharmony_ci run: cd bindgen-tests/tests/quickchecking && cargo test 7212a9d9c8Sopenharmony_ci 7312a9d9c8Sopenharmony_ci test-expectations: 7412a9d9c8Sopenharmony_ci runs-on: ${{matrix.os}} 7512a9d9c8Sopenharmony_ci strategy: 7612a9d9c8Sopenharmony_ci matrix: 7712a9d9c8Sopenharmony_ci # TODO(#1954): These should be run on mac too, but turns out they're 7812a9d9c8Sopenharmony_ci # broken. 7912a9d9c8Sopenharmony_ci os: [ubuntu-latest, macos-latest] 8012a9d9c8Sopenharmony_ci steps: 8112a9d9c8Sopenharmony_ci - uses: actions/checkout@v3 8212a9d9c8Sopenharmony_ci 8312a9d9c8Sopenharmony_ci - name: Install stable 8412a9d9c8Sopenharmony_ci uses: actions-rs/toolchain@v1 8512a9d9c8Sopenharmony_ci with: 8612a9d9c8Sopenharmony_ci profile: minimal 8712a9d9c8Sopenharmony_ci toolchain: stable 8812a9d9c8Sopenharmony_ci override: true 8912a9d9c8Sopenharmony_ci 9012a9d9c8Sopenharmony_ci - name: Test expectations 9112a9d9c8Sopenharmony_ci run: cd bindgen-tests/tests/expectations && cargo test 9212a9d9c8Sopenharmony_ci 9312a9d9c8Sopenharmony_ci test: 9412a9d9c8Sopenharmony_ci runs-on: ${{matrix.os}} 9512a9d9c8Sopenharmony_ci strategy: 9612a9d9c8Sopenharmony_ci matrix: 9712a9d9c8Sopenharmony_ci os: [ubuntu-latest] 9812a9d9c8Sopenharmony_ci target: 9912a9d9c8Sopenharmony_ci - debian: null 10012a9d9c8Sopenharmony_ci cross: null 10112a9d9c8Sopenharmony_ci rust: null 10212a9d9c8Sopenharmony_ci llvm_version: ["5.0", "9.0"] 10312a9d9c8Sopenharmony_ci main_tests: [1] 10412a9d9c8Sopenharmony_ci release_build: [0, 1] 10512a9d9c8Sopenharmony_ci no_default_features: [0, 1] 10612a9d9c8Sopenharmony_ci # FIXME: There are no pre-built static libclang libraries, so the 10712a9d9c8Sopenharmony_ci # `static` feature is not testable atm. 10812a9d9c8Sopenharmony_ci feature_runtime: [0, 1] 10912a9d9c8Sopenharmony_ci feature_extra_asserts: [0] 11012a9d9c8Sopenharmony_ci feature_testing_only_docs: [0] 11112a9d9c8Sopenharmony_ci 11212a9d9c8Sopenharmony_ci include: 11312a9d9c8Sopenharmony_ci # Test with extra asserts + docs just with latest llvm versions to 11412a9d9c8Sopenharmony_ci # prevent explosion 11512a9d9c8Sopenharmony_ci - os: ubuntu-latest 11612a9d9c8Sopenharmony_ci llvm_version: "9.0" 11712a9d9c8Sopenharmony_ci release_build: 0 11812a9d9c8Sopenharmony_ci no_default_features: 0 11912a9d9c8Sopenharmony_ci feature_extra_asserts: 1 12012a9d9c8Sopenharmony_ci feature_testing_only_docs: 1 12112a9d9c8Sopenharmony_ci 12212a9d9c8Sopenharmony_ci # FIXME: Seems installing multiarch packages fails: 12312a9d9c8Sopenharmony_ci # 12412a9d9c8Sopenharmony_ci # https://github.com/rust-lang/rust-bindgen/pull/2037/checks?check_run_id=2441799333 12512a9d9c8Sopenharmony_ci # 12612a9d9c8Sopenharmony_ci # - os: ubuntu-latest 12712a9d9c8Sopenharmony_ci # target: 12812a9d9c8Sopenharmony_ci # debian: arm64 12912a9d9c8Sopenharmony_ci # cross: aarch64-linux-gnu 13012a9d9c8Sopenharmony_ci # rust: aarch64-unknown-linux-gnu 13112a9d9c8Sopenharmony_ci # llvm_version: "9.0" 13212a9d9c8Sopenharmony_ci # main_tests: 0 13312a9d9c8Sopenharmony_ci # release_build: 0 13412a9d9c8Sopenharmony_ci # feature_extra_asserts: 0 13512a9d9c8Sopenharmony_ci # feature_testing_only_docs: 0 13612a9d9c8Sopenharmony_ci 13712a9d9c8Sopenharmony_ci # Ensure stuff works on macos too 13812a9d9c8Sopenharmony_ci - os: macos-latest 13912a9d9c8Sopenharmony_ci llvm_version: "9.0" 14012a9d9c8Sopenharmony_ci release_build: 0 14112a9d9c8Sopenharmony_ci no_default_features: 0 14212a9d9c8Sopenharmony_ci feature_extra_asserts: 0 14312a9d9c8Sopenharmony_ci feature_testing_only_docs: 0 14412a9d9c8Sopenharmony_ci steps: 14512a9d9c8Sopenharmony_ci - uses: actions/checkout@v3 14612a9d9c8Sopenharmony_ci 14712a9d9c8Sopenharmony_ci - name: Install multiarch packages 14812a9d9c8Sopenharmony_ci if: matrix.target.debian 14912a9d9c8Sopenharmony_ci run: | 15012a9d9c8Sopenharmony_ci sudo apt-get install binfmt-support qemu-user-static gcc-${{matrix.target.cross}} g++-${{matrix.target.cross}} 15112a9d9c8Sopenharmony_ci source /etc/lsb-release 15212a9d9c8Sopenharmony_ci sudo tee /etc/apt/sources.list <<EOF >/dev/null 15312a9d9c8Sopenharmony_ci deb [arch=${{matrix.target.debian}}] http://ports.ubuntu.com/ubuntu-ports/ $DISTRIB_CODENAME main 15412a9d9c8Sopenharmony_ci deb [arch=${{matrix.target.debian}}] http://ports.ubuntu.com/ubuntu-ports/ $DISTRIB_CODENAME-updates main 15512a9d9c8Sopenharmony_ci deb [arch=${{matrix.target.debian}}] http://ports.ubuntu.com/ubuntu-ports/ $DISTRIB_CODENAME-backports main 15612a9d9c8Sopenharmony_ci deb [arch=${{matrix.target.debian}}] http://ports.ubuntu.com/ubuntu-ports/ $DISTRIB_CODENAME-security main 15712a9d9c8Sopenharmony_ci EOF 15812a9d9c8Sopenharmony_ci sudo dpkg --add-architecture ${{matrix.target.debian}} 15912a9d9c8Sopenharmony_ci sudo apt-get update 16012a9d9c8Sopenharmony_ci sudo apt-get install libc6:${{matrix.target.debian}} libstdc++6:${{matrix.target.debian}} 16112a9d9c8Sopenharmony_ci 16212a9d9c8Sopenharmony_ci - name: Install stable 16312a9d9c8Sopenharmony_ci uses: actions-rs/toolchain@v1 16412a9d9c8Sopenharmony_ci with: 16512a9d9c8Sopenharmony_ci profile: minimal 16612a9d9c8Sopenharmony_ci toolchain: stable 16712a9d9c8Sopenharmony_ci target: ${{matrix.target.rust}} 16812a9d9c8Sopenharmony_ci override: true 16912a9d9c8Sopenharmony_ci - name: Install libtinfo 17012a9d9c8Sopenharmony_ci if: matrix.os == 'ubuntu-latest' 17112a9d9c8Sopenharmony_ci run: | 17212a9d9c8Sopenharmony_ci sudo apt-get update 17312a9d9c8Sopenharmony_ci sudo apt-get install libtinfo5 17412a9d9c8Sopenharmony_ci - name: Run all the tests 17512a9d9c8Sopenharmony_ci env: 17612a9d9c8Sopenharmony_ci GITHUB_ACTIONS_OS: ${{matrix.os}} 17712a9d9c8Sopenharmony_ci RUST_CROSS_COMPILER: ${{matrix.target.cross}} 17812a9d9c8Sopenharmony_ci RUST_TARGET: ${{matrix.target.rust}} 17912a9d9c8Sopenharmony_ci LLVM_VERSION: ${{matrix.llvm_version}} 18012a9d9c8Sopenharmony_ci BINDGEN_MAIN_TESTS: ${{matrix.main_tests}} 18112a9d9c8Sopenharmony_ci BINDGEN_RELEASE_BUILD: ${{matrix.release_build}} 18212a9d9c8Sopenharmony_ci BINDGEN_FEATURE_RUNTIME: ${{matrix.feature_runtime}} 18312a9d9c8Sopenharmony_ci BINDGEN_FEATURE_EXTRA_ASSERTS: ${{matrix.feature_extra_asserts}} 18412a9d9c8Sopenharmony_ci BINDGEN_FEATURE_TESTING_ONLY_DOCS: ${{matrix.feature_testing_only_docs}} 18512a9d9c8Sopenharmony_ci BINDGEN_NO_DEFAULT_FEATURES: ${{matrix.no_default_features}} 18612a9d9c8Sopenharmony_ci run: ./ci/test.sh 18712a9d9c8Sopenharmony_ci 18812a9d9c8Sopenharmony_ci test-book: 18912a9d9c8Sopenharmony_ci runs-on: ubuntu-latest 19012a9d9c8Sopenharmony_ci steps: 19112a9d9c8Sopenharmony_ci - uses: actions/checkout@v3 19212a9d9c8Sopenharmony_ci 19312a9d9c8Sopenharmony_ci - name: Install stable 19412a9d9c8Sopenharmony_ci uses: actions-rs/toolchain@v1 19512a9d9c8Sopenharmony_ci with: 19612a9d9c8Sopenharmony_ci profile: minimal 19712a9d9c8Sopenharmony_ci toolchain: stable 19812a9d9c8Sopenharmony_ci override: true 19912a9d9c8Sopenharmony_ci 20012a9d9c8Sopenharmony_ci # NOTE(emilio): Change deploy-book as well if you change this. 20112a9d9c8Sopenharmony_ci - name: Test book 20212a9d9c8Sopenharmony_ci run: | 20312a9d9c8Sopenharmony_ci 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 20412a9d9c8Sopenharmony_ci ./mdbook build book 20512a9d9c8Sopenharmony_ci ./mdbook test book 206