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