# 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 on: push: paths: - '.github/workflows/python.yml' - 'ci/**' - 'cpp/**' - 'python/**' pull_request: paths: - '.github/workflows/python.yml' - 'ci/**' - 'cpp/**' - 'python/**' concurrency: group: ${{ github.repository }}-${{ github.ref }}-${{ github.workflow }} cancel-in-progress: true env: DOCKER_VOLUME_PREFIX: ".docker/" ARCHERY_DOCKER_USER: ${{ secrets.DOCKERHUB_USER }} ARCHERY_DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }} jobs: docker: name: ${{ matrix.title }} runs-on: ubuntu-latest if: ${{ !contains(github.event.pull_request.title, 'WIP') }} timeout-minutes: 60 strategy: fail-fast: false matrix: name: - conda-python-3.8-nopandas - conda-python-3.6-pandas-0.23 - conda-python-3.7-pandas-latest include: - name: conda-python-3.8-nopandas cache: conda-python-3.8 image: conda-python title: AMD64 Conda Python 3.8 Without Pandas python: 3.8 - name: conda-python-3.6-pandas-0.23 cache: conda-python-3.6 image: conda-python-pandas title: AMD64 Conda Python 3.6 Pandas 0.23 python: 3.6 pandas: 0.23 numpy: 1.16 - name: conda-python-3.7-pandas-latest cache: conda-python-3.7 image: conda-python-pandas title: AMD64 Conda Python 3.7 Pandas latest python: 3.7 pandas: latest env: PYTHON: ${{ matrix.python || 3.7 }} UBUNTU: ${{ matrix.ubuntu || 18.04 }} PANDAS: ${{ matrix.pandas || 'latest' }} NUMPY: ${{ matrix.numpy || 'latest' }} steps: - name: Checkout Arrow uses: actions/checkout@v2 with: fetch-depth: 0 - name: Fetch Submodules and Tags run: ci/scripts/util_checkout.sh - name: Free Up Disk Space run: ci/scripts/util_cleanup.sh - name: Cache Docker Volumes uses: actions/cache@v2 with: path: .docker key: ${{ matrix.cache }}-${{ hashFiles('cpp/**') }} restore-keys: ${{ matrix.cache }}- - name: Setup Python uses: actions/setup-python@v1 with: python-version: 3.8 - name: Setup Archery run: pip install -e dev/archery[docker] - name: Execute Docker Build run: | sudo sysctl -w kernel.core_pattern="core.%e.%p" ulimit -c unlimited archery docker run ${{ matrix.image }} - name: Docker Push if: success() && github.event_name == 'push' && github.repository == 'apache/arrow' continue-on-error: true run: archery docker push ${{ matrix.image }} macos: name: AMD64 MacOS 10.15 Python 3 runs-on: macos-latest if: ${{ !contains(github.event.pull_request.title, 'WIP') }} timeout-minutes: 60 env: ARROW_HOME: /usr/local ARROW_DATASET: ON ARROW_GANDIVA: ON ARROW_JEMALLOC: ON ARROW_ORC: ON ARROW_PARQUET: ON ARROW_PLASMA: ON ARROW_PYTHON: ON ARROW_WITH_ZLIB: ON ARROW_WITH_LZ4: ON ARROW_WITH_BZ2: ON ARROW_WITH_ZSTD: ON ARROW_WITH_SNAPPY: ON ARROW_WITH_BROTLI: ON ARROW_BUILD_TESTS: OFF CMAKE_ARGS: "-DPython3_EXECUTABLE=/usr/local/bin/python3" PYARROW_TEST_LARGE_MEMORY: ON steps: - name: Checkout Arrow uses: actions/checkout@v2 with: fetch-depth: 0 - name: Fetch Submodules and Tags shell: bash run: ci/scripts/util_checkout.sh - name: Install Dependencies shell: bash run: | rm -f /usr/local/bin/2to3 brew update --preinstall brew bundle --file=cpp/Brewfile brew install coreutils python3 -mpip install \ -r python/requirements-build.txt \ -r python/requirements-test.txt - name: Build shell: bash run: | export PYTHON=python3 ci/scripts/cpp_build.sh $(pwd) $(pwd)/build ci/scripts/python_build.sh $(pwd) $(pwd)/build - name: Test shell: bash run: ci/scripts/python_test.sh $(pwd) $(pwd)/build