Merge pull request #386 from AlanRosenthal/main #1295
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
# Build and test the python package | |
name: Python build and test | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
permissions: | |
contents: read | |
jobs: | |
build: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: ['ubuntu-latest', 'macos-latest', 'windows-latest'] | |
python-version: ["3.8", "3.9", "3.10", "3.11"] | |
fail-fast: false | |
steps: | |
- name: Check out from Git | |
uses: actions/checkout@v3 | |
- name: Get history and tags for SCM versioning to work | |
run: | | |
git fetch --prune --unshallow | |
git fetch --depth=1 origin +refs/tags/*:refs/tags/* | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install ".[build,test,development,documentation]" | |
- name: Test | |
run: | | |
invoke test | |
- name: Build | |
run: | | |
inv build | |
inv build.mkdocs | |
build-rust: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: [ "3.8", "3.9", "3.10", "3.11" ] | |
rust-version: [ "1.70.0", "stable" ] | |
fail-fast: false | |
steps: | |
- name: Check out from Git | |
uses: actions/checkout@v3 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Python dependencies | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install ".[build,test,development,documentation]" | |
- name: Install Rust toolchain | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
components: clippy,rustfmt | |
toolchain: ${{ matrix.rust-version }} | |
- name: Install Rust dependencies | |
run: cargo install cargo-all-features # allows building/testing combinations of features | |
- name: Check License Headers | |
run: cd rust && cargo run --features dev-tools --bin file-header check-all | |
- name: Rust Build | |
run: cd rust && cargo build --all-targets && cargo build-all-features --all-targets | |
# Lints after build so what clippy needs is already built | |
- name: Rust Lints | |
run: cd rust && cargo fmt --check && cargo clippy --all-targets -- --deny warnings && cargo clippy --all-features --all-targets -- --deny warnings | |
- name: Rust Tests | |
run: cd rust && cargo test-all-features | |
# At some point, hook up publishing the binary. For now, just make sure it builds. | |
# Once we're ready to publish binaries, this should be built with `--release`. | |
- name: Build Bumble CLI | |
run: cd rust && cargo build --features bumble-tools --bin bumble |