datafusion-objectstore-s3 0.2.1

S3 as an ObjectStore for Datafusion
Documentation
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

name: Tests
on: [push, pull_request]

jobs:
  test:
    name: Test Workspace on AMD64 Rust ${{ matrix.rust }}
    runs-on: ubuntu-latest
    strategy:
      matrix:
        arch: [amd64]
        rust: [stable]
    steps:
      - uses: actions/checkout@v2
        with:
          submodules: true
      - name: Cache Cargo
        uses: actions/cache@v2
        with:
          path: /home/runner/.cargo
          key: cargo-S3-cache-
      - name: Cache Rust dependencies
        uses: actions/cache@v2
        with:
          path: /home/runner/target
          key: target-S3-cache-
      - name: Setup Rust toolchain
        run: |
          rustup toolchain install ${{ matrix.rust }}
          rustup default ${{ matrix.rust }}
          rustup component add rustfmt
      - name: Setup minio
        run: |
          docker run \
          --detach \
          --rm \
          --publish 9000:9000 \
          --publish 9001:9001 \
          --name minio \
          --volume "$(pwd)/parquet-testing:/data" \
          --env "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \
          --env "MINIO_ROOT_PASSWORD=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \
          quay.io/minio/minio server /data \
          --console-address ":9001"
      - name: Run tests
        run: |
          cargo test
  fmt:
    name: Rust formatting
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Setup toolchain
        run: |
          rustup toolchain install stable
          rustup default stable
          rustup component add rustfmt
      - name: Run
        run: cargo fmt --all -- --check
  clippy:
    name: Clippy
    runs-on: ubuntu-latest
    strategy:
      matrix:
        arch: [amd64]
        rust: [stable]
    container:
      image: ${{ matrix.arch }}/rust
      env:
        # Disable full debug symbol generation to speed up CI build and keep memory down
        # "1" means line tables only, which is useful for panic tracebacks.
        RUSTFLAGS: "-C debuginfo=1"
    steps:
      - uses: actions/checkout@v2
        with:
          submodules: true
      - name: Cache Cargo
        uses: actions/cache@v2
        with:
          path: /home/runner/.cargo
          key: cargo-S3-cache-
      - name: Cache Rust dependencies
        uses: actions/cache@v2
        with:
          path: /home/runner/target
          key: target-S3-cache-
      - name: Setup Rust toolchain
        run: |
          rustup toolchain install ${{ matrix.rust }}
          rustup default ${{ matrix.rust }}
          rustup component add rustfmt clippy
      - name: Run clippy
        run: |
          cargo clippy --all-targets --workspace -- -D warnings
        env:
          CARGO_HOME: "/github/home/.cargo"
          CARGO_TARGET_DIR: "/github/home/target"