[pull] trunk from spiceai:trunk #3125
This file contains hidden or 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: check all features | |
| on: | |
| push: | |
| branches: | |
| - trunk | |
| paths: | |
| - '**/Cargo.toml' | |
| pull_request: | |
| paths: | |
| - '**/Cargo.toml' | |
| workflow_dispatch: | |
| concurrency: | |
| # Allow only one workflow per any non-trunk branch. | |
| group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.ref_name == 'trunk' && github.sha || 'any-sha' }} | |
| cancel-in-progress: true | |
| env: | |
| CARGO_TERM_COLOR: always | |
| CARGO_INCREMENTAL: 0 | |
| CARGO_NET_GIT_FETCH_WITH_CLI: true | |
| # CI performance optimizations | |
| CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse | |
| CARGO_NET_RETRY: 10 | |
| CARGO_HTTP_TIMEOUT: 60 | |
| jobs: | |
| build: | |
| name: Features Check | |
| runs-on: spiceai-macos | |
| steps: | |
| - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Set up Rust | |
| uses: ./.github/actions/setup-rust | |
| - name: Set up spiceio | |
| id: setup-spiceio | |
| uses: spiceai/spiceio/.github/actions/setup@18e298c86831c6969a0ff16ee827fe2fd816df7d # v0.5.1 | |
| with: | |
| smb-url: smb://runner@192.168.3.148/ai_platform_dev | |
| smb-pass: ${{ secrets.UNAS_SMB_PASS }} | |
| token: ${{ github.token }} | |
| bucket: sccache | |
| region: us-west-1 | |
| - name: Set up make | |
| uses: ./.github/actions/setup-make | |
| - name: Set up cc | |
| uses: ./.github/actions/setup-cc | |
| - name: Check if sccache can be set up | |
| run: | | |
| if [ -z "${{ secrets.TEST_MINIO_ENDPOINT }}" ]; then | |
| echo "SCCACHE_SETUP=false" >> $GITHUB_ENV | |
| echo "RUSTC_WRAPPER=" >> $GITHUB_ENV | |
| else | |
| echo "SCCACHE_SETUP=true" >> $GITHUB_ENV | |
| echo "RUSTC_WRAPPER=sccache" >> $GITHUB_ENV | |
| fi | |
| - name: Set up sccache | |
| if: ${{ env.SCCACHE_SETUP == 'true' }} | |
| uses: ./.github/actions/setup-sccache | |
| with: | |
| minio_endpoint: ${{ secrets.TEST_MINIO_ENDPOINT }} | |
| spiceio_endpoint: ${{ steps.setup-spiceio.outputs.endpoint }} | |
| - name: Cache cargo-hack binary | |
| id: cache-cargo-hack | |
| uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 | |
| with: | |
| path: ~/.cargo/bin/cargo-hack | |
| key: cargo-hack-${{ runner.os }}-${{ runner.arch }}-0.6.31 | |
| - name: Install cargo-hack | |
| if: steps.cache-cargo-hack.outputs.cache-hit != 'true' | |
| run: cargo install cargo-hack --version 0.6.31 --locked | |
| # Use cargo-hack to efficiently check all feature combinations | |
| # This reuses build artifacts between checks, making it much faster than | |
| # running individual cargo check commands | |
| # Note: --each-feature already includes a run with --no-default-features, | |
| # so we don't need to specify it separately | |
| - name: Check all feature combinations | |
| run: | | |
| cargo hack check --each-feature --profile lint \ | |
| --exclude-features default,extended_tests,models,cuda,metal,mcp,odbc,release,kafka,iceberg-write,snapshots,tpc-extension,spark,s3_vectors,bedrock,nfs | |
| env: | |
| RUSTC_WRAPPER: ${{ env.RUSTC_WRAPPER }} | |
| AWS_ACCESS_KEY_ID: ${{ secrets.TEST_MINIO_ACCESS_KEY }} | |
| AWS_SECRET_ACCESS_KEY: ${{ secrets.TEST_MINIO_SECRET_KEY }} | |
| - name: Check runtime/openapi feature | |
| run: cargo check --no-default-features --features runtime/openapi --profile lint | |
| env: | |
| RUSTC_WRAPPER: ${{ env.RUSTC_WRAPPER }} | |
| AWS_ACCESS_KEY_ID: ${{ secrets.TEST_MINIO_ACCESS_KEY }} | |
| AWS_SECRET_ACCESS_KEY: ${{ secrets.TEST_MINIO_SECRET_KEY }} | |
| - name: Show sccache stats | |
| if: ${{ env.SCCACHE_SETUP == 'true' }} | |
| run: sccache --show-stats | |
| - name: Kill spiceio | |
| if: always() && steps.setup-spiceio.outputs.pid != '' | |
| run: kill ${{ steps.setup-spiceio.outputs.pid }} || true | |
| - name: Upload spiceio logs | |
| if: always() | |
| uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7 | |
| with: | |
| name: spiceio-features-logs | |
| path: ${{ runner.temp }}/spiceio.log | |
| if-no-files-found: ignore |