From 1e6c32479b941f4e38e68fe80c505fedc7f05b6c Mon Sep 17 00:00:00 2001 From: comphead Date: Fri, 17 Oct 2025 13:25:24 -0700 Subject: [PATCH 1/8] chore: Fix `no space left on device` --- .github/workflows/rust.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 59333a3a39a3d..8284f165a117f 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -347,6 +347,17 @@ jobs: with: save-if: ${{ github.ref_name == 'main' }} shared-key: "amd-ci-linux-test-example" + - name: Remove unnecessary files + run: | + echo "Disk space before cleanup:" + df -h + docker system prune -af + sudo rm -rf /tmp/* + sudo rm -rf /opt/hostedtoolcache + sudo rm -rf "$AGENT_TOOLSDIRECTORY" + sudo apt-get clean + echo "Disk space after cleanup:" + df -h - name: Run examples run: | # test datafusion-sql examples From faef57cad1c86e740dd6ec5afe44df91dcddedad Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Fri, 17 Oct 2025 16:38:53 -0400 Subject: [PATCH 2/8] remove docker command --- .github/workflows/rust.yml | 1 - datafusion-testing | 2 +- testing | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 8284f165a117f..200b5d4117b4d 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -351,7 +351,6 @@ jobs: run: | echo "Disk space before cleanup:" df -h - docker system prune -af sudo rm -rf /tmp/* sudo rm -rf /opt/hostedtoolcache sudo rm -rf "$AGENT_TOOLSDIRECTORY" diff --git a/datafusion-testing b/datafusion-testing index f72ac4075ada5..905df5f65cc9d 160000 --- a/datafusion-testing +++ b/datafusion-testing @@ -1 +1 @@ -Subproject commit f72ac4075ada5ea9810551bc0c3e3161c61204a2 +Subproject commit 905df5f65cc9d0851719c21f5a4dd5cd77621f19 diff --git a/testing b/testing index d2a1371230349..0d60ccae40d0e 160000 --- a/testing +++ b/testing @@ -1 +1 @@ -Subproject commit d2a13712303498963395318a4eb42872e66aead7 +Subproject commit 0d60ccae40d0e8f2d22c15fafb01c5d4be8c63a6 From c14f24da951204b49ae879aeca3511dd4a6b39bb Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Fri, 17 Oct 2025 16:50:40 -0400 Subject: [PATCH 3/8] Hack out all other jobs --- .github/workflows/audit.yml | 49 -- .github/workflows/dependencies.yml | 55 --- .github/workflows/dev.yml | 51 -- .github/workflows/docs.yaml | 81 ---- .github/workflows/docs_pr.yaml | 63 --- .github/workflows/extended.yml | 168 ------- .github/workflows/rust.yml | 726 ----------------------------- 7 files changed, 1193 deletions(-) delete mode 100644 .github/workflows/audit.yml delete mode 100644 .github/workflows/dependencies.yml delete mode 100644 .github/workflows/dev.yml delete mode 100644 .github/workflows/docs.yaml delete mode 100644 .github/workflows/docs_pr.yaml delete mode 100644 .github/workflows/extended.yml diff --git a/.github/workflows/audit.yml b/.github/workflows/audit.yml deleted file mode 100644 index e7955067c9496..0000000000000 --- a/.github/workflows/audit.yml +++ /dev/null @@ -1,49 +0,0 @@ -# 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: Security audit - -concurrency: - group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }} - cancel-in-progress: true - -on: - push: - paths: - - "**/Cargo.toml" - - "**/Cargo.lock" - branches: - - main - - pull_request: - paths: - - "**/Cargo.toml" - - "**/Cargo.lock" - -jobs: - security_audit: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - name: Install cargo-audit - uses: taiki-e/install-action@3216b6964cbfe053bb8b9a2ef245bd9300e2061d # v2.62.14 - with: - tool: cargo-audit - - name: Run audit check - # Ignored until https://github.com/apache/datafusion/issues/15571 - # ignored py03 warning until arrow 55 upgrade - run: cargo audit --ignore RUSTSEC-2024-0370 --ignore RUSTSEC-2025-0020 diff --git a/.github/workflows/dependencies.yml b/.github/workflows/dependencies.yml deleted file mode 100644 index fede423a507fa..0000000000000 --- a/.github/workflows/dependencies.yml +++ /dev/null @@ -1,55 +0,0 @@ -# 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: Dependencies - -concurrency: - group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }} - cancel-in-progress: true - -on: - push: - paths: - - "**/Cargo.toml" - - "**/Cargo.lock" - pull_request: - paths: - - "**/Cargo.toml" - - "**/Cargo.lock" - # manual trigger - # https://docs.github.com/en/actions/managing-workflow-runs/manually-running-a-workflow - workflow_dispatch: - -jobs: - depcheck: - name: circular dependency check - runs-on: ubuntu-latest - container: - image: amd64/rust - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - with: - submodules: true - fetch-depth: 1 - - name: Setup Rust toolchain - uses: ./.github/actions/setup-builder - with: - rust-version: stable - - name: Check dependencies - run: | - cd dev/depcheck - cargo run diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml deleted file mode 100644 index 03e1dfc7bfe3c..0000000000000 --- a/.github/workflows/dev.yml +++ /dev/null @@ -1,51 +0,0 @@ -# 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: Dev -on: [push, pull_request] - -concurrency: - group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }} - cancel-in-progress: true - -jobs: - license-header-check: - runs-on: ubuntu-latest - name: Check License Header - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: korandoru/hawkeye@c3d9887d4b48e5b6c77306934606a4ff4623a2d3 # v6.2.0 - - prettier: - name: Use prettier to check formatting of documents - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0 - with: - node-version: "20" - - name: Prettier check - run: | - # if you encounter error, rerun the command below and commit the changes - # - # ignore subproject CHANGELOG.md because they are machine generated - npx prettier@2.7.1 --write \ - '{datafusion,datafusion-cli,datafusion-examples,dev,docs}/**/*.md' \ - '!datafusion/CHANGELOG.md' \ - README.md \ - CONTRIBUTING.md - git diff --exit-code diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml deleted file mode 100644 index 588bf46aaca70..0000000000000 --- a/.github/workflows/docs.yaml +++ /dev/null @@ -1,81 +0,0 @@ -# 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. - -on: - push: - branches: - - main - paths: - - .asf.yaml - - .github/workflows/docs.yaml - - docs/** - -name: Deploy DataFusion site - -jobs: - build-docs: - name: Build docs - runs-on: ubuntu-latest - steps: - - name: Checkout docs sources - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - - name: Checkout asf-site branch - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - with: - ref: asf-site - path: asf-site - - - name: Setup Python - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0 - with: - python-version: "3.12" - - - name: Install dependencies - run: | - set -x - python3 -m venv venv - source venv/bin/activate - pip install -r docs/requirements.txt - - - name: Build docs - run: | - set -x - source venv/bin/activate - cd docs - ./build.sh - - - name: Copy & push the generated HTML - run: | - set -x - cd asf-site/ - rsync \ - -a \ - --delete \ - --exclude '/.git/' \ - ../docs/build/html/ \ - ./ - cp ../.asf.yaml . - touch .nojekyll - git status --porcelain - if [ "$(git status --porcelain)" != "" ]; then - git config user.name "github-actions[bot]" - git config user.email "github-actions[bot]@users.noreply.github.com" - git add --all - git commit -m 'Publish built docs triggered by ${{ github.sha }}' - git push || git push --force - fi diff --git a/.github/workflows/docs_pr.yaml b/.github/workflows/docs_pr.yaml deleted file mode 100644 index c182f2ef85d23..0000000000000 --- a/.github/workflows/docs_pr.yaml +++ /dev/null @@ -1,63 +0,0 @@ -# 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. - -# Tests for Docs that runs on PRs -name: Docs - -concurrency: - group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }} - cancel-in-progress: true - -on: - push: - paths: - - "docs/**" - pull_request: - paths: - - "docs/**" - # manual trigger - # https://docs.github.com/en/actions/managing-workflow-runs/manually-running-a-workflow - workflow_dispatch: - -jobs: - - # Test doc build - linux-test-doc-build: - name: Test doc build - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - with: - submodules: true - fetch-depth: 1 - - name: Setup Python - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0 - with: - python-version: "3.12" - - name: Install doc dependencies - run: | - set -x - python3 -m venv venv - source venv/bin/activate - pip install -r docs/requirements.txt - - name: Build docs html and check for warnings - run: | - set -x - source venv/bin/activate - cd docs - ./build.sh # fails on errors - diff --git a/.github/workflows/extended.yml b/.github/workflows/extended.yml deleted file mode 100644 index 9343997e05682..0000000000000 --- a/.github/workflows/extended.yml +++ /dev/null @@ -1,168 +0,0 @@ -# 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: Datafusion extended tests - -concurrency: - group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }} - cancel-in-progress: true - -# https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows#running-your-pull_request-workflow-when-a-pull-request-merges -# -# These jobs are not run as part of PR checks as they are time-consuming -# and should not fail often. -# -# We still run them as they provide important coverage to ensure correctness -# in the (very rare) event of a hash failure or sqlite library query failure. -on: - push: - branches: - - main - # support extended test suite for release candidate branches, - # it is not expected to have many changes in these branches, - # so running extended tests is not a burden - - 'branch-*' - workflow_dispatch: - inputs: - pr_number: - description: 'Pull request number' - type: string - check_run_id: - description: 'Check run ID for status updates' - type: string - pr_head_sha: - description: 'PR head SHA' - type: string - -permissions: - contents: read - checks: write - -jobs: - - # Check crate compiles and base cargo check passes - linux-build-lib: - name: linux build test - runs-on: ubuntu-latest - # note: do not use amd/rust container to preserve disk space - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - with: - ref: ${{ github.event.inputs.pr_head_sha }} # will be empty if triggered by push - submodules: true - fetch-depth: 1 - - name: Install Rust - run: | - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y - source $HOME/.cargo/env - rustup toolchain install - - name: Install Protobuf Compiler - run: sudo apt-get install -y protobuf-compiler - - name: Prepare cargo build - run: | - cargo check --profile ci --all-targets - cargo clean - - # Run extended tests (with feature 'extended_tests') - linux-test-extended: - name: cargo test 'extended_tests' (amd64) - needs: [linux-build-lib] - runs-on: ubuntu-latest - # note: do not use amd/rust container to preserve disk space - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - with: - ref: ${{ github.event.inputs.pr_head_sha }} # will be empty if triggered by push - submodules: true - fetch-depth: 1 - - name: Free Disk Space (Ubuntu) - uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1 - - name: Install Rust - run: | - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y - source $HOME/.cargo/env - rustup toolchain install - - name: Install Protobuf Compiler - run: sudo apt-get install -y protobuf-compiler - # For debugging, test binaries can be large. - - name: Show available disk space - run: | - df -h - - name: Run tests (excluding doctests) - env: - RUST_BACKTRACE: 1 - run: | - cargo test \ - --profile ci \ - --exclude datafusion-examples \ - --exclude datafusion-benchmarks \ - --exclude datafusion-cli \ - --workspace \ - --lib \ - --tests \ - --bins \ - --features avro,json,backtrace,extended_tests,recursive_protection - - name: Verify Working Directory Clean - run: git diff --exit-code - - name: Cleanup - run: cargo clean - - # Check answers are correct when hash values collide - hash-collisions: - name: cargo test hash collisions (amd64) - runs-on: ubuntu-latest - container: - image: amd64/rust - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - with: - ref: ${{ github.event.inputs.pr_head_sha }} # will be empty if triggered by push - submodules: true - fetch-depth: 1 - - name: Setup Rust toolchain - uses: ./.github/actions/setup-builder - with: - rust-version: stable - - name: Run tests - run: | - cd datafusion - cargo test --profile ci --exclude datafusion-examples --exclude datafusion-benchmarks --exclude datafusion-sqllogictest --exclude datafusion-cli --workspace --lib --tests --features=force_hash_collisions,avro - cargo clean - - sqllogictest-sqlite: - name: "Run sqllogictests with the sqlite test suite" - runs-on: ubuntu-latest - container: - image: amd64/rust - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - with: - ref: ${{ github.event.inputs.pr_head_sha }} # will be empty if triggered by push - submodules: true - fetch-depth: 1 - - name: Setup Rust toolchain - uses: ./.github/actions/setup-builder - with: - rust-version: stable - - name: Run sqllogictest - run: | - cargo test --features backtrace --profile release-nonlto --test sqllogictests -- --include-sqlite - cargo clean - - - - diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 200b5d4117b4d..73358ff4e8403 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -39,297 +39,9 @@ on: workflow_dispatch: jobs: - # Check crate compiles and base cargo check passes - linux-build-lib: - name: linux build test - runs-on: ubuntu-latest - container: - image: amd64/rust - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - name: Setup Rust toolchain - uses: ./.github/actions/setup-builder - with: - rust-version: stable - - name: Rust Dependency Cache - uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0 - with: - shared-key: "amd-ci-check" # this job uses it's own cache becase check has a separate cache and we need it to be fast as it blocks other jobs - save-if: ${{ github.ref_name == 'main' }} - - name: Prepare cargo build - run: | - # Adding `--locked` here to assert that the `Cargo.lock` file is up to - # date with the manifest. When this fails, please make sure to commit - # the changes to `Cargo.lock` after building with the updated manifest. - cargo check --profile ci --workspace --all-targets --features integration-tests --locked - - # Check datafusion-common features - # - # Ensure via `cargo check` that the crate can be built with a - # subset of the features packages enabled. - linux-datafusion-common-features: - name: cargo check datafusion-common features - needs: linux-build-lib - runs-on: ubuntu-latest - container: - image: amd64/rust - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - name: Setup Rust toolchain - uses: ./.github/actions/setup-builder - with: - rust-version: stable - - name: Check datafusion-common (default features) - run: cargo check --profile ci --all-targets -p datafusion-common - # - # Note: Only check libraries (not --all-targets) to cover end user APIs - # - - name: Check datafusion-common (no-default-features) - run: cargo check --profile ci --no-default-features -p datafusion-common - # Note: don't check other feature flags as datafusion-common is not typically used standalone - - # Check datafusion-substrait features - # - # Ensure via `cargo check` that the crate can be built with a - # subset of the features packages enabled. - linux-datafusion-substrait-features: - name: cargo check datafusion-substrait features - needs: linux-build-lib - runs-on: ubuntu-latest - container: - image: amd64/rust - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - name: Setup Rust toolchain - uses: ./.github/actions/setup-builder - with: - rust-version: stable - - name: Rust Dependency Cache - uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0 - with: - save-if: false # set in linux-test - shared-key: "amd-ci" - - name: Check datafusion-substrait (default features) - run: cargo check --profile ci --all-targets -p datafusion-substrait - # - # Note: Only check libraries (not --all-targets) to cover end user APIs - # - - name: Check datafusion-substrait (no-default-features) - run: cargo check --profile ci --no-default-features -p datafusion-substrait - - name: Check datafusion-substrait (physical) - run: cargo check --profile ci --no-default-features -p datafusion-substrait --features=physical - - name: Install cmake - run: | - # note the builder setup runs apt-get update / installs protobuf compiler - apt-get install -y cmake - - name: Check datafusion-substrait (protoc) - run: cargo check --profile ci --no-default-features -p datafusion-substrait --features=protoc - - # Check datafusion-proto features - # - # Ensure via `cargo check` that the crate can be built with a - # subset of the features packages enabled. - linux-datafusion-proto-features: - name: cargo check datafusion-proto features - needs: linux-build-lib - runs-on: ubuntu-latest - container: - image: amd64/rust - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - name: Setup Rust toolchain - uses: ./.github/actions/setup-builder - with: - rust-version: stable - - name: Check datafusion-proto (default features) - run: cargo check --profile ci --all-targets -p datafusion-proto - # - # Note: Only check libraries (not --all-targets) to cover end user APIs - # - - name: Check datafusion-proto (no-default-features) - run: cargo check --profile ci --no-default-features -p datafusion-proto - - name: Check datafusion-proto (json) - run: cargo check --profile ci --no-default-features -p datafusion-proto --features=json - - name: Check datafusion-proto (parquet) - run: cargo check --profile ci --no-default-features -p datafusion-proto --features=parquet - - name: Check datafusion-proto (avro) - run: cargo check --profile ci --no-default-features -p datafusion-proto --features=avro - - - # Check datafusion crate features - # - # Ensure via `cargo check` that the crate can be built with a - # subset of the features packages enabled. - linux-cargo-check-datafusion: - name: cargo check datafusion features - needs: linux-build-lib - runs-on: ubuntu-latest - container: - image: amd64/rust - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - name: Setup Rust toolchain - uses: ./.github/actions/setup-builder - with: - rust-version: stable - - name: Rust Dependency Cache - uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0 - with: - save-if: false # set in linux-test - shared-key: "amd-ci" - - name: Check datafusion (default features) - run: cargo check --profile ci --all-targets -p datafusion - # - # Note: Only check libraries (not --all-targets) to cover end user APIs - # - - name: Check datafusion (no-default-features) - run: cargo check --profile ci --no-default-features -p datafusion - - name: Check datafusion (nested_expressions) - run: cargo check --profile ci --no-default-features -p datafusion --features=nested_expressions - - name: Check datafusion (array_expressions) - run: cargo check --profile ci --no-default-features -p datafusion --features=array_expressions - - name: Check datafusion (avro) - run: cargo check --profile ci --no-default-features -p datafusion --features=avro - - name: Check datafusion (backtrace) - run: cargo check --profile ci --no-default-features -p datafusion --features=backtrace - - name: Check datafusion (compression) - run: cargo check --profile ci --no-default-features -p datafusion --features=compression - - name: Check datafusion (crypto_expressions) - run: cargo check --profile ci --no-default-features -p datafusion --features=crypto_expressions - - name: Check datafusion (datetime_expressions) - run: cargo check --profile ci --no-default-features -p datafusion --features=datetime_expressions - - name: Check datafusion (encoding_expressions) - run: cargo check --profile ci --no-default-features -p datafusion --features=encoding_expressions - - name: Check datafusion (force_hash_collisions) - run: cargo check --profile ci --no-default-features -p datafusion --features=force_hash_collisions - - name: Check datafusion (math_expressions) - run: cargo check --profile ci --no-default-features -p datafusion --features=math_expressions - - name: Check datafusion (parquet) - run: cargo check --profile ci --no-default-features -p datafusion --features=parquet - - name: Check datafusion (pyarrow) - run: cargo check --profile ci --no-default-features -p datafusion --features=pyarrow - - name: Check datafusion (regex_expressions) - run: cargo check --profile ci --no-default-features -p datafusion --features=regex_expressions - - name: Check datafusion (recursive_protection) - run: cargo check --profile ci --no-default-features -p datafusion --features=recursive_protection - - name: Check datafusion (serde) - run: cargo check --profile ci --no-default-features -p datafusion --features=serde - - name: Check datafusion (string_expressions) - run: cargo check --profile ci --no-default-features -p datafusion --features=string_expressions - - name: Check datafusion (unicode_expressions) - run: cargo check --profile ci --no-default-features -p datafusion --features=unicode_expressions - - name: Check parquet encryption (parquet_encryption) - run: cargo check --profile ci --no-default-features -p datafusion --features=parquet_encryption - - # Check datafusion-functions crate features - # - # Ensure via `cargo check` that the crate can be built with a - # subset of the features packages enabled. - linux-cargo-check-datafusion-functions: - name: cargo check datafusion-functions features - needs: linux-build-lib - runs-on: ubuntu-latest - container: - image: amd64/rust - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - name: Setup Rust toolchain - uses: ./.github/actions/setup-builder - with: - rust-version: stable - - name: Check datafusion-functions (default features) - run: cargo check --profile ci --all-targets -p datafusion-functions - # - # Note: Only check libraries (not --all-targets) to cover end user APIs - # - - name: Check datafusion-functions (no-default-features) - run: cargo check --profile ci --no-default-features -p datafusion-functions - - name: Check datafusion-functions (crypto_expressions) - run: cargo check --profile ci --no-default-features -p datafusion-functions --features=crypto_expressions - - name: Check datafusion-functions (datetime_expressions) - run: cargo check --profile ci --no-default-features -p datafusion-functions --features=datetime_expressions - - name: Check datafusion-functions (encoding_expressions) - run: cargo check --profile ci --no-default-features -p datafusion-functions --features=encoding_expressions - - name: Check datafusion-functions (math_expressions) - run: cargo check --profile ci --no-default-features -p datafusion-functions --features=math_expressions - - name: Check datafusion-functions (regex_expressions) - run: cargo check --profile ci --no-default-features -p datafusion-functions --features=regex_expressions - - name: Check datafusion-functions (string_expressions) - run: cargo check --profile ci --no-default-features -p datafusion-functions --features=string_expressions - - name: Check datafusion-functions (unicode_expressions) - run: cargo check --profile ci --no-default-features -p datafusion-functions --features=unicode_expressions - - # Library and integration tests - linux-test: - name: cargo test (amd64) - needs: linux-build-lib - runs-on: ubuntu-latest - container: - image: amd64/rust - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - with: - submodules: true - fetch-depth: 1 - - name: Setup Rust toolchain - uses: ./.github/actions/setup-builder - with: - rust-version: stable - - name: Rust Dependency Cache - uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0 - with: - save-if: ${{ github.ref_name == 'main' }} - shared-key: "amd-ci" - - name: Run tests (excluding doctests and datafusion-cli) - env: - RUST_BACKTRACE: 1 - run: | - cargo test \ - --profile ci \ - --exclude datafusion-examples \ - --exclude ffi_example_table_provider \ - --exclude datafusion-benchmarks \ - --exclude datafusion-cli \ - --workspace \ - --lib \ - --tests \ - --bins \ - --features serde,avro,json,backtrace,integration-tests,parquet_encryption - - name: Verify Working Directory Clean - run: git diff --exit-code - - # datafusion-cli tests - linux-test-datafusion-cli: - name: cargo test datafusion-cli (amd64) - needs: linux-build-lib - runs-on: ubuntu-latest - # should be uncommented once https://github.com/apache/datafusion/pull/16644 is merged - # and cache should be added - # container: - # image: amd64/rust - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - with: - submodules: true - fetch-depth: 1 - - name: Setup Rust toolchain - run: rustup toolchain install stable - - name: Run tests (excluding doctests) - env: - RUST_BACKTRACE: 1 - AWS_ENDPOINT: http://127.0.0.1:9000 - AWS_ACCESS_KEY_ID: TEST-DataFusionLogin - AWS_SECRET_ACCESS_KEY: TEST-DataFusionPassword - TEST_STORAGE_INTEGRATION: 1 - AWS_ALLOW_HTTP: true - run: cargo test --features backtrace --profile ci -p datafusion-cli --lib --tests --bins - - name: Verify Working Directory Clean - run: git diff --exit-code - linux-test-example: name: cargo examples (amd64) - needs: linux-build-lib runs-on: ubuntu-latest container: image: amd64/rust @@ -365,441 +77,3 @@ jobs: ci/scripts/rust_example.sh - name: Verify Working Directory Clean run: git diff --exit-code - - # Run `cargo test doc` (test documentation examples) - linux-test-doc: - name: cargo test doc (amd64) - needs: linux-build-lib - runs-on: ubuntu-latest - container: - image: amd64/rust - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - with: - submodules: true - fetch-depth: 1 - - name: Setup Rust toolchain - uses: ./.github/actions/setup-builder - with: - rust-version: stable - - name: Run doctests - run: cargo test --profile ci --doc --features avro,json - - name: Verify Working Directory Clean - run: git diff --exit-code - - # Run `cargo doc` to ensure the rustdoc is clean - linux-rustdoc: - name: cargo doc - needs: linux-build-lib - runs-on: ubuntu-latest - container: - image: amd64/rust - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - name: Setup Rust toolchain - uses: ./.github/actions/setup-builder - with: - rust-version: stable - - name: Run cargo doc - run: ci/scripts/rust_docs.sh - - linux-wasm-pack: - name: build and run with wasm-pack - runs-on: ubuntu-24.04 - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - name: Setup for wasm32 - run: | - rustup target add wasm32-unknown-unknown - - name: Install dependencies - run: | - sudo apt-get update -qq - sudo apt-get install -y -qq clang - - name: Setup wasm-pack - uses: taiki-e/install-action@3216b6964cbfe053bb8b9a2ef245bd9300e2061d # v2.62.14 - with: - tool: wasm-pack - - name: Run tests with headless mode - working-directory: ./datafusion/wasmtest - run: | - RUSTFLAGS='--cfg getrandom_backend="wasm_js"' wasm-pack test --headless --firefox - RUSTFLAGS='--cfg getrandom_backend="wasm_js"' wasm-pack test --headless --chrome --chromedriver $CHROMEWEBDRIVER/chromedriver - - # verify that the benchmark queries return the correct results - verify-benchmark-results: - name: verify benchmark results (amd64) - needs: linux-build-lib - runs-on: ubuntu-latest - container: - image: amd64/rust - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - with: - submodules: true - fetch-depth: 1 - - name: Setup Rust toolchain - uses: ./.github/actions/setup-builder - with: - rust-version: stable - - name: Generate benchmark data and expected query results - run: | - mkdir -p datafusion/sqllogictest/test_files/tpch/data - git clone https://github.com/databricks/tpch-dbgen.git - cd tpch-dbgen - make - ./dbgen -f -s 0.1 - mv *.tbl ../datafusion/sqllogictest/test_files/tpch/data - - name: Verify that benchmark queries return expected results - run: | - # increase stack size to fix stack overflow - export RUST_MIN_STACK=20971520 - export TPCH_DATA=`realpath datafusion/sqllogictest/test_files/tpch/data` - cargo test plan_q --package datafusion-benchmarks --profile ci --features=ci -- --test-threads=1 - INCLUDE_TPCH=true cargo test --features backtrace --profile ci --package datafusion-sqllogictest --test sqllogictests - - name: Verify Working Directory Clean - run: git diff --exit-code - - sqllogictest-postgres: - name: "Run sqllogictest with Postgres runner" - needs: linux-build-lib - runs-on: ubuntu-latest - container: - image: amd64/rust - services: - postgres: - image: postgres:15 - env: - POSTGRES_PASSWORD: postgres - POSTGRES_DB: db_test - POSTGRES_INITDB_ARGS: --encoding=UTF-8 --lc-collate=C --lc-ctype=C - ports: - - 5432:5432 - options: >- - --health-cmd pg_isready - --health-interval 10s - --health-timeout 5s - --health-retries 5 - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - with: - submodules: true - fetch-depth: 1 - - name: Setup Rust toolchain - uses: ./.github/actions/setup-builder - with: - rust-version: stable - - name: Run sqllogictest - run: | - cd datafusion/sqllogictest - PG_COMPAT=true PG_URI="postgresql://postgres:postgres@$POSTGRES_HOST:$POSTGRES_PORT/db_test" cargo test --features backtrace --profile ci --features=postgres --test sqllogictests - env: - # use postgres for the host here because we have specified a container for the job - POSTGRES_HOST: postgres - POSTGRES_PORT: ${{ job.services.postgres.ports[5432] }} - - sqllogictest-substrait: - name: "Run sqllogictest in Substrait round-trip mode" - needs: linux-build-lib - runs-on: ubuntu-latest - container: - image: amd64/rust - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - with: - submodules: true - fetch-depth: 1 - - name: Setup Rust toolchain - uses: ./.github/actions/setup-builder - with: - rust-version: stable - - name: Run sqllogictest - # TODO: Right now several tests are failing in Substrait round-trip mode, so this - # command cannot be run for all the .slt files. Run it for just one that works (limit.slt) - # until most of the tickets in https://github.com/apache/datafusion/issues/16248 are addressed - # and this command can be run without filters. - run: cargo test --test sqllogictests -- --substrait-round-trip limit.slt - - # Temporarily commenting out the Windows flow, the reason is enormously slow running build - # Waiting for new Windows 2025 github runner - # Details: https://github.com/apache/datafusion/issues/13726 - # - # windows: - # name: cargo test (win64) - # runs-on: windows-latest - # steps: - # - uses: actions/checkout@v4 - # with: - # submodules: true - # - name: Setup Rust toolchain - # uses: ./.github/actions/setup-windows-builder - # - name: Run tests (excluding doctests) - # shell: bash - # run: | - # export PATH=$PATH:$HOME/d/protoc/bin - # cargo test --lib --tests --bins --features avro,json,backtrace - - # Commenting out intel mac build as so few users would ever use it - # Details: https://github.com/apache/datafusion/issues/13846 - # macos: - # name: cargo test (macos) - # runs-on: macos-latest - # steps: - # - uses: actions/checkout@v4 - # with: - # submodules: true - # fetch-depth: 1 - # - name: Setup Rust toolchain - # uses: ./.github/actions/setup-macos-builder - # - name: Run tests (excluding doctests) - # shell: bash - # run: cargo test run --profile ci --exclude datafusion-examples --exclude datafusion-benchmarks --workspace --lib --tests --bins --features avro,json,backtrace - - macos-aarch64: - name: cargo test (macos-aarch64) - runs-on: macos-14 - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - with: - submodules: true - fetch-depth: 1 - - name: Setup Rust toolchain - uses: ./.github/actions/setup-macos-aarch64-builder - - name: Run tests (excluding doctests) - shell: bash - run: cargo test --profile ci --exclude datafusion-cli --workspace --lib --tests --bins --features avro,json,backtrace,integration-tests - - test-datafusion-pyarrow: - name: cargo test pyarrow (amd64) - needs: linux-build-lib - runs-on: ubuntu-latest - container: - image: amd64/rust:bullseye # Use the bullseye tag image which comes with python3.9 - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - with: - submodules: true - fetch-depth: 1 - - name: Install PyArrow - run: | - echo "LIBRARY_PATH=$LD_LIBRARY_PATH" >> $GITHUB_ENV - apt-get update - apt-get install python3-pip -y - python3 -m pip install pyarrow - - name: Setup Rust toolchain - uses: ./.github/actions/setup-builder - with: - rust-version: stable - - name: Run datafusion-common tests - run: cargo test --profile ci -p datafusion-common --features=pyarrow - - vendor: - name: Verify Vendored Code - runs-on: ubuntu-latest - container: - image: amd64/rust - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - name: Setup Rust toolchain - uses: ./.github/actions/setup-builder - with: - rust-version: stable - - name: Run gen - run: ./regen.sh - working-directory: ./datafusion/proto - - name: Verify workspace clean (if this fails, run ./datafusion/proto/regen.sh and check in results) - run: git diff --exit-code - - check-fmt: - name: Check cargo fmt - runs-on: ubuntu-latest - container: - image: amd64/rust - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - name: Setup Rust toolchain - uses: ./.github/actions/setup-builder - with: - rust-version: stable - - name: Run - run: | - echo '' > datafusion/proto/src/generated/datafusion.rs - ci/scripts/rust_fmt.sh - - # Coverage job disabled due to - # https://github.com/apache/datafusion/issues/3678 - - # coverage: - # name: coverage - # runs-on: ubuntu-latest - # steps: - # - uses: actions/checkout@v4 - # with: - # submodules: true - # - name: Install protobuf compiler - # shell: bash - # run: | - # mkdir -p $HOME/d/protoc - # cd $HOME/d/protoc - # export PROTO_ZIP="protoc-21.4-linux-x86_64.zip" - # curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v21.4/$PROTO_ZIP - # unzip $PROTO_ZIP - # export PATH=$PATH:$HOME/d/protoc/bin - # protoc --version - # - name: Setup Rust toolchain - # run: | - # rustup toolchain install stable - # rustup default stable - # rustup component add rustfmt clippy - # - name: Cache Cargo - # uses: actions/cache@v4 - # with: - # path: /home/runner/.cargo - # # this key is not equal because the user is different than on a container (runner vs github) - # key: cargo-coverage-cache3- - # - name: Run coverage - # run: | - # export PATH=$PATH:$HOME/d/protoc/bin - # rustup toolchain install stable - # rustup default stable - # cargo install --version 0.20.1 cargo-tarpaulin - # cargo tarpaulin --all --out Xml - # - name: Report coverage - # continue-on-error: true - # run: bash <(curl -s https://codecov.io/bash) - - clippy: - name: clippy - needs: linux-build-lib - runs-on: ubuntu-latest - container: - image: amd64/rust - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - with: - submodules: true - fetch-depth: 1 - - name: Setup Rust toolchain - uses: ./.github/actions/setup-builder - with: - rust-version: stable - - name: Install Clippy - run: rustup component add clippy - - name: Rust Dependency Cache - uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0 - with: - save-if: ${{ github.ref_name == 'main' }} - shared-key: "amd-ci-clippy" - - name: Run clippy - run: ci/scripts/rust_clippy.sh - - cargo-toml-formatting-checks: - name: check Cargo.toml formatting - needs: linux-build-lib - runs-on: ubuntu-latest - container: - image: amd64/rust - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - with: - submodules: true - fetch-depth: 1 - - name: Setup Rust toolchain - uses: ./.github/actions/setup-builder - with: - rust-version: stable - - name: Install taplo - run: cargo +stable install taplo-cli --version ^0.9 --locked - # if you encounter an error, try running 'taplo format' to fix the formatting automatically. - - name: Check Cargo.toml formatting - run: taplo format --check - - config-docs-check: - name: check configs.md and ***_functions.md is up-to-date - needs: linux-build-lib - runs-on: ubuntu-latest - container: - image: amd64/rust - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - with: - submodules: true - fetch-depth: 1 - - name: Setup Rust toolchain - uses: ./.github/actions/setup-builder - with: - rust-version: stable - - uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0 - with: - node-version: "20" - - name: Check if configs.md has been modified - run: | - # If you encounter an error, run './dev/update_config_docs.sh' and commit - ./dev/update_config_docs.sh - git diff --exit-code - - name: Check if any of the ***_functions.md has been modified - run: | - # If you encounter an error, run './dev/update_function_docs.sh' and commit - ./dev/update_function_docs.sh - git diff --exit-code - - # Verify MSRV for the crates which are directly used by other projects: - # - datafusion - # - datafusion-substrait - # - datafusion-proto - # - datafusion-cli - msrv: - name: Verify MSRV (Min Supported Rust Version) - runs-on: ubuntu-latest - container: - image: amd64/rust - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - name: Setup Rust toolchain - uses: ./.github/actions/setup-builder - - name: Install cargo-msrv - uses: taiki-e/install-action@3216b6964cbfe053bb8b9a2ef245bd9300e2061d # v2.62.14 - with: - tool: cargo-msrv - - - name: Check datafusion - working-directory: datafusion/core - run: | - # If you encounter an error with any of the commands below it means - # your code or some crate in the dependency tree has a higher MSRV - # (Min Supported Rust Version) than the one specified in the - # `rust-version` key of `Cargo.toml`. - # - # To reproduce: - # 1. Install the version of Rust that is failing. - # 2. Run the command that failed with that version. - # - # Example: - # # MSRV looks like "1.80.0" and is specified in Cargo.toml. We can read the value with the following command: - # msrv="$(cargo metadata --format-version=1 | jq '.packages[] | select( .name == "datafusion" ) | .rust_version' -r)" - # echo "MSRV: ${msrv}" - # rustup install "${msrv}" - # cargo "+${msrv}" check - # - # To resolve, either: - # 1. Change your code to use older Rust features, - # 2. Revert dependency update - # 3. Update the MSRV version in `Cargo.toml` - # - # Please see the DataFusion Rust Version Compatibility Policy before - # updating Cargo.toml. You may have to update the code instead. - # https://github.com/apache/datafusion/blob/main/README.md#rust-version-compatibility-policy - cargo msrv --output-format json --log-target stdout verify - - name: Check datafusion-substrait - working-directory: datafusion/substrait - run: cargo msrv --output-format json --log-target stdout verify - - name: Check datafusion-proto - working-directory: datafusion/proto - run: cargo msrv --output-format json --log-target stdout verify - typos: - name: Spell Check with Typos - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - with: - persist-credentials: false - - uses: crate-ci/typos@6d35b835f6f431bbe715c4c1ccd2c7d3264e11fb # v1.37.0 From 9316515f0d6dcf3cdfe6892c934b9cf9857abefb Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Fri, 17 Oct 2025 16:52:11 -0400 Subject: [PATCH 4/8] telemetry --- .github/workflows/rust.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 73358ff4e8403..6d735c85b56e8 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -61,8 +61,9 @@ jobs: shared-key: "amd-ci-linux-test-example" - name: Remove unnecessary files run: | - echo "Disk space before cleanup:" + echo "Disk space before cleanup:" df -h + du -s -d 3 / sudo rm -rf /tmp/* sudo rm -rf /opt/hostedtoolcache sudo rm -rf "$AGENT_TOOLSDIRECTORY" From 63ff715d857281a34aca1caff988dd2e98e86e05 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Fri, 17 Oct 2025 16:55:37 -0400 Subject: [PATCH 5/8] linx --- .github/workflows/rust.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 6d735c85b56e8..6f4e011db6ff8 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -63,7 +63,7 @@ jobs: run: | echo "Disk space before cleanup:" df -h - du -s -d 3 / + du -h -d 3 / sudo rm -rf /tmp/* sudo rm -rf /opt/hostedtoolcache sudo rm -rf "$AGENT_TOOLSDIRECTORY" From 463c765c6b261b81770e67e484193ea7d31e15d0 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Fri, 17 Oct 2025 17:01:32 -0400 Subject: [PATCH 6/8] tru --- .github/workflows/rust.yml | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 6f4e011db6ff8..0135fd23d6a18 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -63,11 +63,23 @@ jobs: run: | echo "Disk space before cleanup:" df -h - du -h -d 3 / - sudo rm -rf /tmp/* - sudo rm -rf /opt/hostedtoolcache - sudo rm -rf "$AGENT_TOOLSDIRECTORY" - sudo apt-get clean + du -h -d 2 / + apt-get clean + # remove unneeded packages to free up space + # list from https://github.com/AdityaGarg8/remove-unwanted-software/blob/90e01b21170618765a73370fcc3abbd1684a7793/action.yml#L114 + apt-get remove -y '^aspnetcore-.*' + apt-get remove -y '^dotnet-.*' + apt-get remove -y '^llvm-.*' + apt-get remove -y 'php.*' + apt-get remove -y '^mongodb-.*' + apt-get remove -y '^mysql-.*' + if [[ "$(uname -m)" == "x86_64" ]]; then + sudo apt-get remove -y google-chrome-stable microsoft-edge-stable + sudo apt-get remove -y google-cloud-cli --fix-missing + sudo apt-get remove -y powershell --fix-missing + fi + sudo apt-get remove -y azure-cli firefox mono-devel libgl1-mesa-dri --fix-missing + sudo apt-get autoremove -y echo "Disk space after cleanup:" df -h - name: Run examples From 561b613cc1bcae3b36e073bc603589a47b518b75 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Fri, 17 Oct 2025 17:05:51 -0400 Subject: [PATCH 7/8] update --- .github/workflows/rust.yml | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 0135fd23d6a18..fab1da571242d 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -63,23 +63,9 @@ jobs: run: | echo "Disk space before cleanup:" df -h - du -h -d 2 / - apt-get clean - # remove unneeded packages to free up space - # list from https://github.com/AdityaGarg8/remove-unwanted-software/blob/90e01b21170618765a73370fcc3abbd1684a7793/action.yml#L114 - apt-get remove -y '^aspnetcore-.*' - apt-get remove -y '^dotnet-.*' - apt-get remove -y '^llvm-.*' - apt-get remove -y 'php.*' - apt-get remove -y '^mongodb-.*' - apt-get remove -y '^mysql-.*' - if [[ "$(uname -m)" == "x86_64" ]]; then - sudo apt-get remove -y google-chrome-stable microsoft-edge-stable - sudo apt-get remove -y google-cloud-cli --fix-missing - sudo apt-get remove -y powershell --fix-missing - fi - sudo apt-get remove -y azure-cli firefox mono-devel libgl1-mesa-dri --fix-missing - sudo apt-get autoremove -y + du -h -d 1 /__t + du -h -d 1 /__e + du -h -d 1 /__w echo "Disk space after cleanup:" df -h - name: Run examples From 0847d079316193e14b0ca0b06a5e3445d8644a96 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Fri, 17 Oct 2025 17:29:21 -0400 Subject: [PATCH 8/8] Delete preinstall crap --- .github/workflows/rust.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index fab1da571242d..c230976f9a4c5 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -66,6 +66,7 @@ jobs: du -h -d 1 /__t du -h -d 1 /__e du -h -d 1 /__w + rm -rf /__t/Python /__t/CodeQL /__t/node /__t/go echo "Disk space after cleanup:" df -h - name: Run examples