name: CI on: push: branches: [main] pull_request: branches: [main] jobs: test: runs-on: ubuntu-latest container: rust:latest steps: - uses: actions/checkout@v4 - name: Cache cargo registry/target uses: actions/cache@v4 with: path: | ~/.cargo/registry ~/.cargo/git target key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - name: Install rustfmt & clippy components run: rustup component add rustfmt clippy - name: Install thumbv7em-none-eabihf target run: rustup target add thumbv7em-none-eabihf - name: Install Python interop dependencies # The interop suites used to skip silently when python3/h5py were # missing, so they never ran in CI. Install them and make a missing # dependency a failure (CLAWHDF5_REQUIRE_INTEROP below). run: | apt-get update apt-get install -y --no-install-recommends python3 python3-venv python3 -m venv /opt/interop /opt/interop/bin/pip install --no-cache-dir h5py numpy netCDF4 xarray echo "/opt/interop/bin" >> "$GITHUB_PATH" - name: Show interop library versions run: python3 -c "import h5py, netCDF4; print('h5py', h5py.__version__, 'HDF5', h5py.version.hdf5_version, 'netCDF4', netCDF4.__version__)" - name: Run CI script env: CLAWHDF5_REQUIRE_INTEROP: "1" run: bash scripts/ci-test.sh