Provide a bundled flag for gdal-sys
#1609
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: | |
push: | |
branches: [master, trying, staging] | |
pull_request: | |
branches: [master, trying, staging] | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
env: | |
RUST_BACKTRACE: 1 | |
jobs: | |
gdal: | |
strategy: | |
matrix: | |
version: | |
- 3.9.1 | |
- 3.8.5 | |
- 3.7.3 | |
- 3.6.4 | |
- 3.5.3 | |
- 3.4.3 | |
- 3.3.3 | |
- 3.2.3 | |
- 3.1.3 # latest is 3.1.4, but there's no published image | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/osgeo/gdal:ubuntu-full-${{ matrix.version }} | |
name: "ci gdal-${{ matrix.version }}" | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Install build deps | |
shell: bash | |
run: | | |
curl -LO https://apache.jfrog.io/artifactory/arrow/ubuntu/apache-arrow-apt-source-latest-$(grep -F VERSION_CODENAME /etc/os-release | cut -d= -f2).deb | |
apt-get update -y || true | |
apt-get install gnupg -y | |
dpkg -i apache-arrow-apt-source-latest-$(grep -F VERSION_CODENAME /etc/os-release | cut -d= -f2).deb | |
apt-get update -y | |
apt-get install build-essential curl pkg-config libclang-dev -y | |
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: Setup building | |
run: | | |
export CC="clang-9" | |
export CXX="clang++-9" | |
- name: Install stable | |
run: | | |
rustup install --no-self-update --profile minimal stable | |
rustup component add rustfmt clippy | |
- name: Check with Rustfmt | |
run: cargo fmt --all --check | |
- name: Check with Clippy | |
run: cargo clippy --all-targets -- -D warnings | |
- name: Check with Clippy (--all-features) | |
run: cargo clippy --all-targets --features "default bindgen array" -- -D warnings | |
- name: Build | |
run: cargo build | |
- name: Run tests | |
run: cargo test | |
- name: Build (--all-features) | |
run: cargo build --features "default bindgen array" | |
- name: Run tests (--all-features) | |
run: cargo test --features "default bindgen array" -- --nocapture | |
ubuntu_lts: | |
name: "ci ubuntu-lts" | |
runs-on: "ubuntu-20.04" | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Install build deps | |
shell: bash | |
run: | | |
sudo apt-get update -y | |
sudo apt-get install libgdal-dev gdal-bin build-essential curl pkg-config libclang-dev -y | |
export C_INCLUDE_PATH=/usr/include/gdal:$C_INCLUDE_PATH | |
export CPLUS_INCLUDE_PATH=/usr/include/gdal:$CPLUS_INCLUDE_PATH | |
sudo ldconfig | |
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: Setup building | |
run: | | |
export CC="clang-9" | |
export CXX="clang++-9" | |
- name: Install stable | |
run: | | |
rustup install --no-self-update --profile minimal stable | |
rustup component add rustfmt clippy | |
- name: Check with Rustfmt | |
run: cargo fmt --all --check | |
- name: Check with Clippy | |
run: cargo clippy --all-targets -- -D warnings | |
- name: Check with Clippy (--all-features) | |
run: cargo clippy --all-targets --features "default bindgen array" -- -D warnings | |
- name: Build | |
run: cargo build | |
- name: Run tests | |
run: cargo test | |
- name: Build (--all-features) | |
run: cargo build --features "default bindgen array" | |
- name: Run tests (--all-features) | |
run: cargo test --features "default bindgen array" -- --nocapture | |
- name: Install valgrind and cargo-valgrind | |
run: | | |
sudo apt-get install valgrind -y | |
cargo install cargo-valgrind | |
- name: Run --lib tests under valgrind | |
run: cargo valgrind test --lib | |
gdal_static: | |
name: "ci gdal-static" | |
strategy: | |
matrix: | |
os: | |
- ubuntu-latest | |
- windows-latest | |
- macos-latest # x86_64 | |
- macos-14 # aarch64 | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install stable | |
run: | | |
rustup install --no-self-update --profile minimal stable | |
rustup component add rustfmt clippy | |
# we need to have the sqlite binary in path for building proj from source | |
- name: Install Sqlite (Windows) | |
if: runner.os == 'Windows' | |
run: | | |
choco install sqlite | |
echo "C:\ProgramData\chocolatey\lib\SQLite\tools" >> $GITHUB_PATH | |
sqlite3 --version | |
# use the minimal driver set for clippy as the other | |
# drivers do not change the rust code | |
# enable `driver_sqlite` to force statically linking libsqlite3 for proj | |
- name: Check with Clippy (bundled) | |
run: cargo clippy --all-targets --features "gdal-sys/bundled gdal-src gdal-src/driver_sqlite" -- -D warnings | |
# we only build tests here as we have disabled features | |
# that are required for running tests | |
- name: Build bundled gdal (minimal features) | |
if: runner.os == 'Windows' | |
# we use cargo test --no-run here because | |
# tests do not pass due to missing libgeos but we want to have a complete build (including linking) | |
run: cargo test --features "gdal-sys/bundled gdal-src gdal-src/driver_sqlite" --no-run | |
- name: Build bundled gdal (minimal features) | |
if: runner.os != 'Windows' | |
# we use cargo test --no-run here because | |
# tests do not pass due to missing libgeos but we want to have a complete build (including linking) | |
run: cargo test --features "gdal-sys/bundled gdal-src" --no-run | |
- name: Test bundled (all features) | |
run: cargo test --features "gdal-sys/bundled gdal-src gdal-src/all_drivers gdal-src/geos_static" |