-
Notifications
You must be signed in to change notification settings - Fork 12
135 lines (131 loc) · 3.76 KB
/
ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
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-core:
name: Test stac
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- macos-latest
- windows-latest
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- name: Test
run: cargo test -p stac --all-features
check-features-core:
name: Check stac features
runs-on: ubuntu-latest
defaults:
run:
working-directory: crates/core
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@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
env:
DUCKDB_LIB_DIR: /opt/duckdb
DUCKDB_INCLUDE_DIR: /opt/duckdb
LD_LIBRARY_PATH: /opt/duckdb
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- uses: astral-sh/setup-uv@v5
- name: Get DuckDB
run: |
wget https://github.com/duckdb/duckdb/releases/download/v1.1.3/libduckdb-linux-amd64.zip
unzip libduckdb-linux-amd64.zip -d /opt/duckdb
- name: Fmt
run: cargo fmt
- name: Clippy
run: cargo clippy --workspace --all-features
- name: Build # need to build first to get the executable for CLI tests
run: cargo build --all-features
- name: Test
run: cargo test --all-features
- 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.1
env:
DUCKDB_LIB_DIR: /opt/duckdb
DUCKDB_INCLUDE_DIR: /opt/duckdb
LD_LIBRARY_PATH: /opt/duckdb
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@v4
- uses: Swatinem/rust-cache@v2
- uses: astral-sh/setup-uv@v5
- name: Get DuckDB
run: |
wget https://github.com/duckdb/duckdb/releases/download/v1.1.3/libduckdb-linux-amd64.zip
unzip libduckdb-linux-amd64.zip -d /opt/duckdb
- name: Test
run: cargo test -p pgstac --all-features
- name: Validate
run: uv run --group stac-api-validator scripts/validate-stac-server --pgstac
check-nightly:
name: Check (nightly)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
- uses: Swatinem/rust-cache@v2
- name: Check
run: cargo check --workspace --all-features
msrv:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: taiki-e/install-action@cargo-hack
- name: Check msrv
run: cargo hack check --rust-version --workspace --all-targets --ignore-private
doc:
name: Docs
runs-on: ubuntu-latest
env:
RUSTDOCFLAGS: -Dwarnings
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- uses: DavidAnson/markdownlint-cli2-action@v19
- name: Doc
run: cargo doc --workspace --all-features