You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by al...@apache.org on 2022/07/26 19:46:01 UTC

[arrow-rs] branch master updated: Split most arrow specific CI checks into their own workflows (reduce common CI time to 21 minutes) (#2168)

This is an automated email from the ASF dual-hosted git repository.

alamb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow-rs.git


The following commit(s) were added to refs/heads/master by this push:
     new e96ae8a70 Split most arrow specific CI checks into their own workflows (reduce common CI time to 21 minutes) (#2168)
e96ae8a70 is described below

commit e96ae8a70a6a006779798153934ca371c2884742
Author: Andrew Lamb <an...@nerdnetworks.org>
AuthorDate: Tue Jul 26 15:45:54 2022 -0400

    Split most arrow specific CI checks into their own workflows (reduce common CI time to 21 minutes) (#2168)
    
    * Split most arrow specific CI checks into their own workflows
    
    * fix image names + clippy commands
    
    * Fix clippy and wasm
---
 .github/workflows/arrow.yml | 161 ++++++++++++++++++++++++++++++++++++++++++++
 .github/workflows/rust.yml  |  86 -----------------------
 2 files changed, 161 insertions(+), 86 deletions(-)

diff --git a/.github/workflows/arrow.yml b/.github/workflows/arrow.yml
new file mode 100644
index 000000000..910f89bd3
--- /dev/null
+++ b/.github/workflows/arrow.yml
@@ -0,0 +1,161 @@
+# 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 arrow crate
+name: Arrow
+
+on:
+  # always trigger
+  push:
+    branches:
+      - master
+  pull_request:
+
+jobs:
+
+  # test the crate
+  linux-test:
+    name: Test
+    runs-on: ubuntu-latest
+    container:
+      image: amd64/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: Setup Rust toolchain
+        uses: ./.github/actions/setup-builder
+        with:
+          rust-version: stable
+      - name: Test default features
+        run: |
+          cargo test -p arrow
+      - name: Test all supported features
+        run: |
+          cargo test -p arrow --features=force_validate,prettyprint
+      - name: Run examples
+        run: |
+          # Test arrow examples
+          cargo run --example builders
+          cargo run --example dynamic_types
+          cargo run --example read_csv
+          cargo run --example read_csv_infer_schema
+
+  # test compilaton features
+  linux-features:
+    name: Feature Compatibility
+    runs-on: ubuntu-latest
+    container:
+      image: amd64/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: Setup Rust toolchain
+        uses: ./.github/actions/setup-builder
+        with:
+          rust-version: stable
+      - name: Test compilation with different features
+        run: |
+          cargo check -p arrow --no-default-features
+          cargo check -p arrow --all-targets
+          cargo check -p arrow --no-default-features --all-targets
+          cargo check -p arrow --no-default-features --all-targets --features test_utils
+
+  # test the --features "simd" of the arrow crate. This requires nightly.
+  linux-test-simd:
+    name: Test SIMD on AMD64 Rust ${{ matrix.rust }}
+    runs-on: ubuntu-latest
+    container:
+      image: amd64/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: Setup Rust toolchain
+        uses: ./.github/actions/setup-builder
+        with:
+          rust-version: nightly
+      - name: Run tests
+        run: |
+          cargo test -p arrow --features "simd"
+      - name: Check compilation with simd features
+        run: |
+          cargo check -p arrow --features simd
+          cargo check -p arrow --features simd --all-targets
+
+
+  # test the arrow crate builds against wasm32 in stable rust
+  wasm32-build:
+    name: Build wasm32
+    runs-on: ubuntu-latest
+    container:
+      image: amd64/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@v3
+        with:
+          path: /github/home/.cargo
+          key: cargo-wasm32-cache3-
+      - name: Setup Rust toolchain for WASM
+        run: |
+          rustup toolchain install nightly
+          rustup override set nightly
+          rustup target add wasm32-unknown-unknown
+          rustup target add wasm32-wasi
+      - name: Build
+        run: |
+          cd arrow
+          cargo build --no-default-features --features=csv,ipc,simd --target wasm32-unknown-unknown
+          cargo build --no-default-features --features=csv,ipc,simd --target wasm32-wasi
+
+  clippy:
+    name: Clippy
+    runs-on: ubuntu-latest
+    container:
+      image: amd64/rust
+    steps:
+      - uses: actions/checkout@v2
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup-builder
+        with:
+          rust-version: stable
+      - name: Setup Clippy
+        run: |
+          rustup component add clippy
+      - name: Run clippy
+        run: |
+          cargo clippy -p arrow --features test_common --features prettyprint  --features=async --all-targets --workspace -- -D warnings
diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml
index 34b786719..63b1f3d4d 100644
--- a/.github/workflows/rust.yml
+++ b/.github/workflows/rust.yml
@@ -54,25 +54,6 @@ jobs:
         run: |
           # run tests on all workspace members with default feature list
           cargo test
-      - name: Re-run tests with all supported features
-        run: |
-          cargo test -p arrow --features=force_validate,prettyprint
-      - name: Run examples
-        run: |
-          # Test arrow examples
-          cargo run --example builders
-          cargo run --example dynamic_types
-          cargo run --example read_csv
-          cargo run --example read_csv_infer_schema
-      - name: Test compilation of arrow library crate with different feature combinations
-        run: |
-          cargo check -p arrow
-          cargo check -p arrow --no-default-features
-      - name: Test compilation of arrow targets with different feature combinations
-        run: |
-          cargo check -p arrow --all-targets
-          cargo check -p arrow --no-default-features --all-targets
-          cargo check -p arrow --no-default-features --all-targets --features test_utils
       - name: Re-run tests on parquet crate with all features
         run: |
           cargo test -p parquet --all-features
@@ -88,36 +69,6 @@ jobs:
           cargo check -p parquet --no-default-features --all-targets
           cargo check -p parquet --no-default-features --features arrow --all-targets
 
-  # test the --features "simd" of the arrow crate. This requires nightly.
-  linux-test-simd:
-    name: Test SIMD on AMD64 Rust ${{ matrix.rust }}
-    runs-on: ubuntu-latest
-    strategy:
-      matrix:
-        arch: [ amd64 ]
-        rust: [ nightly ]
-    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"
-        ARROW_TEST_DATA: /__w/arrow-rs/arrow-rs/testing/data
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Setup Rust toolchain
-        uses: ./.github/actions/setup-builder
-        with:
-          rust-version: ${{ matrix.rust }}
-      - name: Run tests
-        run: |
-          cargo test -p arrow --features "simd"
-      - name: Check compilation with simd features
-        run: |
-          cargo check -p arrow --features simd
-          cargo check -p arrow --features simd --all-targets
 
   windows-and-macos:
     name: Test on ${{ matrix.os }} Rust ${{ matrix.rust }}
@@ -247,40 +198,3 @@ jobs:
       - name: Report coverage
         continue-on-error: true
         run: bash <(curl -s https://codecov.io/bash)
-
-  # test the arrow crate builds against wasm32 in stable rust
-  wasm32-build:
-    name: Build wasm32 on AMD64 Rust ${{ matrix.rust }}
-    runs-on: ubuntu-latest
-    strategy:
-      matrix:
-        arch: [ amd64 ]
-        rust: [ nightly ]
-    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"
-        ARROW_TEST_DATA: /__w/arrow-rs/arrow-rs/testing/data
-        PARQUET_TEST_DATA: /__w/arrow/arrow/parquet-testing/data
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          submodules: true
-      - name: Cache Cargo
-        uses: actions/cache@v3
-        with:
-          path: /github/home/.cargo
-          key: cargo-wasm32-cache3-
-      - name: Setup Rust toolchain for WASM
-        run: |
-          rustup toolchain install ${{ matrix.rust }}
-          rustup override set ${{ matrix.rust }}
-          rustup target add wasm32-unknown-unknown
-          rustup target add wasm32-wasi
-      - name: Build arrow crate
-        run: |
-          cd arrow
-          cargo build --no-default-features --features=csv,ipc,simd --target wasm32-unknown-unknown
-          cargo build --no-default-features --features=csv,ipc,simd --target wasm32-wasi