merge data providers and migrations #5274
Workflow file for this run
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: CI | |
on: | |
pull_request: | |
merge_group: | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
test: | |
runs-on: ${{matrix.os}} | |
services: | |
postgres: | |
image: postgis/postgis | |
env: | |
POSTGRES_USER: geoengine | |
POSTGRES_PASSWORD: geoengine | |
POSTGRES_DB: geoengine | |
ports: | |
- 5432:5432 | |
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 | |
strategy: | |
matrix: | |
os: | |
- ubuntu-22.04 | |
features: [""] | |
build: [""] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Free Disk Space (Ubuntu) | |
uses: jlumbroso/free-disk-space@main | |
with: | |
tool-cache: true | |
android: true | |
dotnet: true | |
haskell: true | |
large-packages: true | |
docker-images: true | |
swap-storage: true | |
- name: Install lld & GDAL & Protobuf | |
run: | | |
sudo apt-get update | |
sudo apt-get install lld libgdal-dev gdal-bin build-essential clang curl protobuf-compiler | |
sudo apt-get clean | |
export C_INCLUDE_PATH=/usr/include/gdal:$C_INCLUDE_PATH | |
export CPLUS_INCLUDE_PATH=/usr/include/gdal:$CPLUS_INCLUDE_PATH | |
sudo ldconfig | |
- name: Install Rustup | |
run: | | |
curl --proto '=https' --tlsv1.2 --retry 10 --retry-connrefused -fsSL "https://sh.rustup.rs" | sh -s -- --profile minimal --default-toolchain none -y | |
echo "${CARGO_HOME:-$HOME/.cargo}/bin" >> $GITHUB_PATH | |
- name: Install SQLFluff | |
run: pip install sqlfluff==2.3.5 | |
- name: Init rustup toolchain | |
run: rustup show # enough to initialize the toolchain | |
- name: setup rust build cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
# An explicit cache key that is used instead of the automatic `job`-based | |
# cache key and is thus stable across jobs. | |
# Default: empty | |
shared-key: "" | |
# An additional cache key that is added alongside the automatic `job`-based | |
# cache key and can be used to further differentiate jobs. | |
# Default: empty | |
key: ci_test_${{ matrix.os }}_${{ matrix.features }}_${{ matrix.build }} | |
# A whitespace separated list of env-var *prefixes* who's value contributes | |
# to the environment cache key. | |
# The env-vars are matched by *prefix*, so the default `RUST` var will | |
# match all of `RUSTC`, `RUSTUP_*`, `RUSTFLAGS`, `RUSTDOC_*`, etc. | |
# Default: "CARGO CC CFLAGS CXX CMAKE RUST" | |
#env-vars: "" | |
# The cargo workspaces and target directory configuration. | |
# These entries are separated by newlines and have the form | |
# `$workspace -> $target`. The `$target` part is treated as a directory | |
# relative to the `$workspace` and defaults to "target" if not explicitly given. | |
# Default: ". -> target" | |
#workspaces: "" | |
# Determines if the cache should be saved even when the workflow has failed. | |
# Default: "false" | |
#cache-on-failure: "" | |
- name: Check with Rustfmt | |
run: cargo fmt --all -- --check | |
- name: Check with Clippy | |
run: cargo clippy --all-targets --locked ${{ matrix.features }} ${{ matrix.build }} -- -D warnings | |
- name: Check with SQLFluff | |
run: sqlfluff lint | |
- name: Run tests | |
run: cargo test --locked ${{ matrix.features }} ${{ matrix.build }} --verbose | |
build: | |
runs-on: ${{matrix.os}} | |
strategy: | |
matrix: | |
os: | |
- ubuntu-22.04 | |
features: [""] | |
build: ["", "--release"] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: APT update | |
run: sudo apt-get update | |
- name: Install lld & GDAL & Protobuf | |
run: | | |
sudo apt-get install lld libgdal-dev gdal-bin build-essential curl protobuf-compiler | |
export C_INCLUDE_PATH=/usr/include/gdal:$C_INCLUDE_PATH | |
export CPLUS_INCLUDE_PATH=/usr/include/gdal:$CPLUS_INCLUDE_PATH | |
sudo ldconfig | |
- name: Install Rustup | |
run: | | |
curl --proto '=https' --tlsv1.2 --retry 10 --retry-connrefused -fsSL "https://sh.rustup.rs" | sh -s -- --profile minimal --default-toolchain none -y | |
echo "${CARGO_HOME:-$HOME/.cargo}/bin" >> $GITHUB_PATH | |
- name: Init rustup toolchain | |
# somehow rustup show will take care to initialize the version based on the toolchain file | |
run: rustup show | |
- name: setup rust build cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
# An explicit cache key that is used instead of the automatic `job`-based | |
# cache key and is thus stable across jobs. | |
# Default: empty | |
shared-key: "" | |
# An additional cache key that is added alongside the automatic `job`-based | |
# cache key and can be used to further differentiate jobs. | |
# Default: empty | |
key: ci_test_${{ matrix.os }}_${{ matrix.features }}_${{ matrix.build }} | |
# A whitespace separated list of env-var *prefixes* who's value contributes | |
# to the environment cache key. | |
# The env-vars are matched by *prefix*, so the default `RUST` var will | |
# match all of `RUSTC`, `RUSTUP_*`, `RUSTFLAGS`, `RUSTDOC_*`, etc. | |
# Default: "CARGO CC CFLAGS CXX CMAKE RUST" | |
#env-vars: "" | |
# The cargo workspaces and target directory configuration. | |
# These entries are separated by newlines and have the form | |
# `$workspace -> $target`. The `$target` part is treated as a directory | |
# relative to the `$workspace` and defaults to "target" if not explicitly given. | |
# Default: ". -> target" | |
#workspaces: "" | |
# Determines if the cache should be saved even when the workflow has failed. | |
# Default: "false" | |
#cache-on-failure: "" | |
- name: Build | |
run: cargo build --locked ${{ matrix.features }} ${{ matrix.build }} --verbose |