newline-delimited GeoJSON writer (#535) #973
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: Python | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
jobs: | |
lint-test: | |
name: Lint and Test | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: python/core | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: "recursive" | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
components: rustfmt, clippy | |
- uses: Swatinem/rust-cache@v2 | |
- name: Cargo fmt | |
run: cargo fmt --all -- --check | |
# # Note not sure why this is needed | |
# - name: Install protobuf | |
# run: | | |
# sudo apt-get install libprotobuf-dev protobuf-compiler | |
# Don't use --all-features as we don't have GDAL 3.6 available in CI | |
- name: "clippy --all" | |
run: cargo clippy --all --tests -- -D warnings | |
- name: "cargo check" | |
run: cargo check --all | |
- name: "cargo test" | |
run: | | |
cargo test --all | |
# lint-python: | |
# name: Lint Python code | |
# runs-on: ubuntu-latest | |
# steps: | |
# - uses: actions/checkout@v4 | |
# - name: Set up Python 3.8 | |
# uses: actions/setup-python@v2 | |
# with: | |
# python-version: "3.8" | |
# - name: run pre-commit | |
# run: | | |
# python -m pip install pre-commit | |
# pre-commit run --all-files | |
test-python: | |
name: Build and test Python | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: true | |
matrix: | |
python-version: ["3.9", "3.12"] | |
defaults: | |
run: | |
working-directory: python/core | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: "recursive" | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@stable | |
- uses: Swatinem/rust-cache@v2 | |
- name: Set up Python | |
id: setup-python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install and configure Poetry | |
uses: snok/install-poetry@v1 | |
with: | |
version: 1.7.0 | |
virtualenvs-create: true | |
virtualenvs-in-project: true | |
installer-parallel: true | |
- name: Check Poetry lockfile up to date | |
run: | | |
poetry check --lock | |
- name: Load cached venv | |
id: cached-poetry-dependencies | |
uses: actions/cache@v4 | |
with: | |
path: python/core/.venv | |
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }} | |
- name: Install dependencies | |
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' | |
run: poetry install --no-interaction --no-root | |
- name: Install root project | |
run: poetry install --no-interaction | |
- name: Run python tests | |
run: | | |
poetry run maturin develop | |
poetry run pytest tests |