Skip to content

Configure features for python #951

Configure features for python

Configure features for python #951

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
CARGO_TERM_VERBOSE: true
jobs:
test-ubuntu:
runs-on: ubuntu-latest
strategy:
matrix:
args:
- "-p stac"
- "-p stac -F reqwest"
- "-p stac -F geoarrow"
- "-p stac -F geoparquet"
- "-p stac -F geoparquet-compression"
- "-p stac-api"
- "-p stac -p stac-api -F geo"
- "-p stac-async"
- "-p stac-cli --no-default-features"
- "-p stac-cli --no-default-features -F geoparquet"
- "-p stac-duckdb -F bundled"
- "-p stac-server"
- "-p stac-server -F axum"
- "-p stac-validate"
steps:
- uses: actions/checkout@v4
- name: Set up Rust cache
uses: Swatinem/rust-cache@v2
- name: Test
run: cargo test ${{ matrix.args }}
test-ubuntu-with-gdal:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- name: Install GDAL
run: |
sudo apt-get update
sudo apt-get install libgdal-dev
- name: Test
run: cargo test -p stac -p stac-cli --all-features
test-ubuntu-with-pgstac:
runs-on: ubuntu-latest
services:
pgstac:
image: ghcr.io/stac-utils/pgstac:v0.8.6
env:
POSTGRES_USER: username
POSTGRES_PASSWORD: password
POSTGRES_DB: postgis
PGUSER: username
PGPASSWORD: password
PGDATABASE: postgis
ports:
- 5432:5432
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- name: Test
run: cargo test -p pgstac
test-windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- name: Test
run: cargo test --no-default-features -F reqwest -F geo
test-macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- name: Test
run: cargo test --no-default-features -F reqwest -F geo
test-python:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- uses: actions/setup-python@v5
with:
python-version: 3.x
- name: Install dev requirements
run: pip install -r python/requirements-dev.txt
- name: Build
run: maturin build --manifest-path python/Cargo.toml --out dist
- name: Install stacrs
run: pip install stacrs --find-links dist --no-index
- name: Check
run: ruff check python && ruff format --check python && mypy python
- name: Test
run: pytest python/tests
test-python-cli:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- uses: actions/setup-python@v5
with:
python-version: 3.x
- name: Install dev requirements
run: pip install maturin
- name: Build
run: maturin build --manifest-path cli/Cargo.toml --out dist
- name: Install stacrs-cli
run: pip install stacrs-cli --find-links dist --no-index
- name: Smoke test
run: stacrs --version
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- name: Install GDAL
run: |
sudo apt-get update
sudo apt-get install libgdal-dev
- name: Fmt
run: cargo fmt
- name: Check
run: cargo check --all --all-features
- name: Clippy
run: cargo clippy --all --all-features
check-nightly:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
- uses: Swatinem/rust-cache@v2
- name: Install GDAL
run: |
sudo apt-get update
sudo apt-get install libgdal-dev
- name: Check
run: cargo check --all --all-features
doc:
runs-on: ubuntu-latest
env:
RUSTDOCFLAGS: -Dwarnings
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- name: Install GDAL
run: |
sudo apt-get update
sudo apt-get install libgdal-dev
- name: Doc
run: cargo doc --all-features
validate-stac-server:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- uses: actions/setup-python@v5
with:
python-version: "3.10"
cache: "pip"
cache-dependency-path: scripts/requirements-stac-server.txt
- name: Install stac-api-validator
run: pip install -r scripts/requirements-stac-server.txt
- name: Validate
run: scripts/validate-stac-server
validate-stac-server-pgstac:
runs-on: ubuntu-latest
services:
pgstac:
image: ghcr.io/stac-utils/pgstac:v0.8.6
env:
POSTGRES_USER: username
POSTGRES_PASSWORD: password
POSTGRES_DB: postgis
PGUSER: username
PGPASSWORD: password
PGDATABASE: postgis
ports:
- 5432:5432
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- uses: actions/setup-python@v5
with:
python-version: "3.10"
cache: "pip"
cache-dependency-path: scripts/requirements-stac-server.txt
- name: Install stac-api-validator
run: pip install -r scripts/requirements-stac-server.txt
- name: Validate
run: scripts/validate-stac-server --pgstac
validate-stac-geoparquet:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: "pip"
cache-dependency-path: scripts/requirements-stac-geoparquet.txt
- name: Install requirements
run: pip install -r scripts/requirements-stac-geoparquet.txt
- name: Validate
run: scripts/validate-stac-geoparquet