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

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


The following commit(s) were added to refs/heads/master by this push:
     new a1e1e97  Add GitHub workflows and remove rust-toolchain file (#15)
a1e1e97 is described below

commit a1e1e976efd9535741189ba16f6044f35c55e1ea
Author: Andy Grove <[email protected]>
AuthorDate: Tue Jul 26 11:31:38 2022 +0100

    Add GitHub workflows and remove rust-toolchain file (#15)
    
    * add workflows
    
    * change branch name
---
 .github/workflows/build.yml | 127 ++++++++++++++++++++++++++++++++++++++++++++
 .github/workflows/test.yaml | 106 ++++++++++++++++++++++++++++++++++++
 rust-toolchain              |   1 -
 3 files changed, 233 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 0000000..4d2ca54
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,127 @@
+# 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: Python Release Build
+on:
+  push:
+    tags: ["*-rc*"]
+    branches: ["master"]
+
+jobs:
+  generate-license:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v2
+      - uses: actions-rs/toolchain@v1
+        with:
+          profile: minimal
+          toolchain: stable
+          override: true
+      - name: Generate license file
+        run: python ./dev/create_license.py
+      - uses: actions/upload-artifact@v2
+        with:
+          name: python-wheel-license
+          path: LICENSE.txt
+
+  build-python-mac-win:
+    needs: [generate-license]
+    name: Mac/Win
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        python-version: ["3.10"]
+        os: [macos-latest, windows-latest]
+    steps:
+      - uses: actions/checkout@v2
+
+      - uses: actions/setup-python@v2
+        with:
+          python-version: ${{ matrix.python-version }}
+
+      - uses: actions-rs/toolchain@v1
+        with:
+          toolchain: stable
+
+      - name: Install dependencies
+        run: |
+          python -m pip install --upgrade pip
+          pip install maturin==0.12.10
+
+      - run: rm LICENSE.txt
+      - name: Download LICENSE.txt
+        uses: actions/download-artifact@v2
+        with:
+          name: python-wheel-license
+          path: .
+
+      - name: Build Python package
+        run: maturin build --release --strip --cargo-extra-args="--locked"
+
+      - name: List Windows wheels
+        if: matrix.os == 'windows-latest'
+        run: dir target\wheels\
+
+      - name: List Mac wheels
+        if: matrix.os != 'windows-latest'
+        run: find target/wheels/
+
+      - name: Archive wheels
+        uses: actions/upload-artifact@v2
+        with:
+          name: dist
+          path: target/wheels/*
+
+  build-manylinux:
+    needs: [generate-license]
+    name: Manylinux
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v2
+      - run: rm LICENSE.txt
+      - name: Download LICENSE.txt
+        uses: actions/download-artifact@v2
+        with:
+          name: python-wheel-license
+          path: .
+      - run: cat LICENSE.txt
+      - name: Build wheels
+        run: |
+          export RUSTFLAGS='-C target-cpu=skylake'
+          docker run --rm -v $(pwd):/io \
+            --workdir /io \
+            konstin2/maturin:v0.12.10 \
+            build --release --manylinux 2010 --cargo-extra-args="--locked"
+      - name: Archive wheels
+        uses: actions/upload-artifact@v2
+        with:
+          name: dist
+          path: target/wheels/*
+
+  # NOTE: PyPI publish needs to be done manually for now after release passed 
the vote
+  # release:
+  #   name: Publish in PyPI
+  #   needs: [build-manylinux, build-python-mac-win]
+  #   runs-on: ubuntu-latest
+  #   steps:
+  #     - uses: actions/download-artifact@v2
+  #     - name: Publish to PyPI
+  #       uses: pypa/gh-action-pypi-publish@master
+  #       with:
+  #         user: __token__
+  #         password: ${{ secrets.pypi_password }}
diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml
new file mode 100644
index 0000000..4b148f2
--- /dev/null
+++ b/.github/workflows/test.yaml
@@ -0,0 +1,106 @@
+# 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: Python test
+on:
+  push:
+    branches: [master]
+  pull_request:
+    branches: [master]
+
+concurrency:
+  group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ 
github.workflow }}
+  cancel-in-progress: true
+
+jobs:
+  test-matrix:
+    runs-on: ubuntu-latest
+    strategy:
+      fail-fast: false
+      matrix:
+        python-version:
+          - "3.10"
+        toolchain:
+          - "stable"
+          - "beta"
+          # we are not that much eager in walking on the edge yet
+          # - nightly
+        # build stable for only 3.7
+        include:
+          - python-version: "3.7"
+            toolchain: "stable"
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup Rust Toolchain
+        uses: actions-rs/toolchain@v1
+        id: rust-toolchain
+        with:
+          toolchain: ${{ matrix.toolchain }}
+          override: true
+
+      - name: Setup Python
+        uses: actions/setup-python@v2
+        with:
+          python-version: ${{ matrix.python-version }}
+
+      - name: Cache Cargo
+        uses: actions/cache@v2
+        with:
+          path: ~/.cargo
+          key: cargo-cache-${{ steps.rust-toolchain.outputs.rustc_hash }}-${{ 
hashFiles('Cargo.lock') }}
+
+      - name: Check Formatting
+        uses: actions-rs/cargo@v1
+        if: ${{ matrix.python-version == '3.10' && matrix.toolchain == 
'stable' }}
+        with:
+          command: fmt
+          args: -- --check
+
+      - name: Run Clippy
+        uses: actions-rs/cargo@v1
+        if: ${{ matrix.python-version == '3.10' && matrix.toolchain == 
'stable' }}
+        with:
+          command: clippy
+          args: --all-targets --all-features -- -D clippy::all
+
+      - name: Create Virtualenv (3.10)
+        if: ${{ matrix.python-version == '3.10' }}
+        run: |
+          python -m venv venv
+          source venv/bin/activate
+          pip install -r requirements-310.txt
+
+      - name: Create Virtualenv (3.7)
+        if: ${{ matrix.python-version == '3.7' }}
+        run: |
+          python -m venv venv
+          source venv/bin/activate
+          pip install -r requirements-37.txt
+
+      - name: Run Python Linters
+        if: ${{ matrix.python-version == '3.10' && matrix.toolchain == 
'stable' }}
+        run: |
+          source venv/bin/activate
+          flake8 --exclude venv --ignore=E501
+          black --line-length 79 --diff --check .
+
+      - name: Run tests
+        run: |
+          source venv/bin/activate
+          maturin develop --cargo-extra-args='--locked'
+          RUST_BACKTRACE=1 pytest -v .
diff --git a/rust-toolchain b/rust-toolchain
deleted file mode 100644
index 12b27c0..0000000
--- a/rust-toolchain
+++ /dev/null
@@ -1 +0,0 @@
-nightly-2021-10-23

Reply via email to