Provide a bundled flag for gdal-sys
#1537
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.8.1 | |
- 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: Test bundled (minimal features) | |
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/enable_all_drivers gdal-src/geos_static" |