Skip to content

bring streaming search traits and get ready for pgstac 0.10 #2768

bring streaming search traits and get ready for pgstac 0.10

bring streaming search traits and get ready for pgstac 0.10 #2768

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
CARGO_TERM_VERBOSE: true
RUSTDOCFLAGS: -Dwarnings
DUCKDB_VERSION: "1.4.2"
DUCKDB_LIB_DIR: /opt/duckdb
LD_LIBRARY_PATH: /opt/duckdb
jobs:
test-core:
name: Test stac
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- macos-latest
- windows-latest
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
- name: Test
run: cargo test -p stac --all-features
check-features-core:
name: Check all features
runs-on: ubuntu-latest
defaults:
run:
working-directory: crates/core
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
- name: Install check-all-features
run: cargo install cargo-all-features
- name: Check
run: cargo check-all-features
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
- uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990 # v8.3.2
- &get-duckdb
name: Get DuckDB
run: |
wget https://github.com/duckdb/duckdb/releases/download/v${{ env.DUCKDB_VERSION }}/libduckdb-linux-amd64.zip
unzip libduckdb-linux-amd64.zip -d /opt/duckdb
rm libduckdb-linux-amd64.zip
- uses: j178/prek-action@e98a699c41eb69ab013a45817a0406469a748f8d # v2.0.5
- name: Test
run: cargo test
validate:
name: Validate
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
- uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990 # v8.3.2
- *get-duckdb
- name: Validate stac-server
run: uv run --group stac-api-validator scripts/validate-stac-server
- name: Validate stac-geoparquet
run: uv run --group stac-geoparquet scripts/validate-stac-geoparquet
test-pgstac:
name: Test pgstac
runs-on: ubuntu-latest
strategy:
matrix:
pgstac_version:
- v0.8.6
- v0.9.11
services:
pgstac:
image: ghcr.io/stac-utils/pgstac:${{ matrix.pgstac_version }}
env:
POSTGRES_USER: username
POSTGRES_PASSWORD: password
POSTGRES_DB: postgis
PGUSER: username
PGPASSWORD: password
PGDATABASE: postgis
ports:
- 5432:5432
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
- uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990 # v8.3.2
- *get-duckdb
- name: Validate
run: uv run --group stac-api-validator scripts/validate-stac-server --pgstac
- name: Search
run: cargo run -F pgstac search postgresql://username:password@localhost:5432/postgis
test-wasm:
name: Test stac-wasm
runs-on: ubuntu-latest
defaults:
run:
working-directory: crates/wasm
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- uses: cargo-bins/cargo-binstall@ead08b90bd7b2e6d81963fb9cf0b7239f66d5db4 # v1.21.0
- name: Install wasm-pack
run: cargo binstall wasm-pack --no-confirm
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
- name: Build wasm
run: wasm-pack build --dev
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: "22"
- name: Install yarn
run: corepack enable && corepack prepare yarn@stable --activate
- name: Install dependencies
run: YARN_ENABLE_HARDENED_MODE=0 yarn install --no-immutable
- name: Install playwright browsers
run: yarn playwright install --with-deps chromium
- name: Run tests
run: yarn test
check-nightly:
name: Check (nightly)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Use nightly
run: rustup override set nightly
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
- name: Check
run: cargo check --workspace
msrv:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- uses: cargo-bins/cargo-binstall@ead08b90bd7b2e6d81963fb9cf0b7239f66d5db4 # v1.21.0
- name: Install cargo-hack
run: cargo binstall cargo-hack --no-confirm
- name: Check msrv
run: cargo hack check --rust-version --workspace --all-targets --ignore-private
doc:
name: Docs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
- uses: DavidAnson/markdownlint-cli2-action@8de2aa07cae85fd17c0b35642db70cf5495f1d25 # v24.0.0
- name: Doc
run: cargo doc --workspace --no-deps