This is an automated email from the ASF dual-hosted git repository. chaokunyang pushed a commit to tag v0.12.0-a9 in repository https://gitbox.apache.org/repos/asf/fory.git
commit 0db2491fc3557ad17eb6c7ff3ca14ddfbe6de309 Author: chaokunyang <[email protected]> AuthorDate: Fri Aug 15 18:16:04 2025 +0800 rename to manylinux1 --- .github/workflows/ci.yml | 328 ----------------------------------------- .github/workflows/release.yaml | 79 +++++----- ci/run_ci.sh | 4 +- 3 files changed, 48 insertions(+), 363 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 11c92b32b..e69de29bb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,328 +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: Fory CI - -on: - push: - branches: - - main - - "releases/**" - - "deploy/**" - - "test*" - tags: - - v* - pull_request: - paths-ignore: - - "**/*.md" - - "docs/**" - - "LICENSE" - - ".vscode/**" - - ".gitignore" - - "licenses/**" - - "DISCLAIMER" - - "NOTICE" - types: ["opened", "reopened", "synchronize"] - -jobs: - java: - name: Java CI - runs-on: ubuntu-latest - env: - MY_VAR: "PATH" - strategy: - matrix: - java-version: ["8", "11", "17", "21", "24"] - steps: - - uses: actions/checkout@v4 - - name: Set up JDK ${{ matrix.java-version }} - uses: actions/setup-java@v4 - with: - java-version: ${{ matrix.java-version }} - distribution: "temurin" - - name: Set up Python3.8 - uses: actions/setup-python@v5 - with: - python-version: 3.8 - - name: Install bazel - run: python ./ci/run_ci.py cpp --install-deps-only - - name: Install python dependencies - run: pip install pyarrow==15.0.0 Cython wheel pytest setuptools -U - - name: Run CI with Maven - run: python ./ci/run_ci.py java --version ${{ matrix.java-version }} - - name: Upload Test Report - uses: actions/upload-artifact@v4 - if: ${{ !cancelled() }} - with: - name: surefire-reports-${{ matrix.java-version }} - path: "**/target/surefire-reports/**" - - openj9: - name: Openj9 Java CI - runs-on: ubuntu-latest - env: - MY_VAR: "PATH" - strategy: - matrix: - # String in openj9 1.8 share byte array by offset, fory doesn't allow it. - java-version: ["21"] - steps: - - uses: actions/checkout@v4 - - name: Set up JDK ${{ matrix.java-version }} - uses: actions/setup-java@v4 - with: - java-version: ${{ matrix.java-version }} - distribution: "adopt-openj9" - - name: Set up Python3.8 - uses: actions/setup-python@v5 - with: - python-version: 3.8 - - name: Install bazel - run: python ./ci/run_ci.py cpp --install-deps-only - - name: Install python dependencies - run: pip install pyarrow==15.0.0 Cython wheel pytest setuptools -U - - name: Run CI with Maven - run: python ./ci/run_ci.py java --version ${{ matrix.java-version }} - - java21_windows: - name: Windows Java 21 CI - runs-on: windows-2022 - env: - MY_VAR: "PATH" - strategy: - matrix: - java-version: ["21"] - steps: - - uses: actions/checkout@v4 - - name: Set up JDK ${{ matrix.java-version }} - uses: actions/setup-java@v4 - with: - java-version: ${{ matrix.java-version }} - distribution: "temurin" - - name: Set up Python 3.8 - uses: actions/setup-python@v5 - with: - python-version: 3.8 - - name: Run CI with Maven - shell: bash - run: python ./ci/run_ci.py java --version windows_java21 - - graalvm: - name: GraalVM CI - runs-on: ubuntu-latest - strategy: - matrix: - java-version: ["17", "21", "23"] - steps: - - uses: actions/checkout@v4 - - uses: graalvm/setup-graalvm@v1 - with: - java-version: ${{ matrix.java-version }} - distribution: "graalvm" - github-token: ${{ secrets.GITHUB_TOKEN }} - native-image-job-reports: "true" - - name: Set up Python3.8 - uses: actions/setup-python@v5 - with: - python-version: 3.8 - - name: Build native image and run - shell: bash - run: python ./ci/run_ci.py java --version graalvm - - kotlin: - name: Kotlin CI - runs-on: ubuntu-latest - env: - MY_VAR: "PATH" - strategy: - matrix: - java-version: ["8", "11", "17", "21"] - steps: - - uses: actions/checkout@v4 - - name: Set up JDK ${{ matrix.java-version }} - uses: actions/setup-java@v4 - with: - java-version: ${{ matrix.java-version }} - distribution: "temurin" - - name: Set up Python 3.8 - uses: actions/setup-python@v5 - with: - python-version: 3.8 - - name: Install fory java - run: python ./ci/run_ci.py java --install-jdks --install-fory - - name: Run Kotlin CI - run: python ./ci/run_ci.py kotlin - - scala: - name: Scala CI - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Set up JDK8 - uses: actions/setup-java@v4 - with: - java-version: 11 - distribution: "temurin" - cache: sbt - - uses: sbt/setup-sbt@v1 - - name: Install fory java - run: cd java && mvn -T10 --no-transfer-progress clean install -DskipTests && cd - - - name: Test - run: | - cd scala && sbt +test && cd - - - integration_tests: - name: Integration Tests - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Set up JDK8 - uses: actions/setup-java@v4 - with: - java-version: 8 - distribution: "temurin" - - name: Set up Python 3.8 - uses: actions/setup-python@v5 - with: - python-version: 3.8 - - name: Run CI - run: python ./ci/run_ci.py java --version integration_tests - - javascript: - name: JavaScript CI - strategy: - matrix: - node-version: [16.x, 18.x, 20.x] - os: [ubuntu-latest, macos-13, windows-2022] - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v4 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v4 - with: - node-version: ${{ matrix.node-version }} - - name: Upgrade npm - run: npm install -g npm@8 - # node-gyp needs to use python and relies on the distutils module. - # The distutils module has been removed starting from python 3.12 - # (see https://docs.python.org/3.10/library/distutils.html). Some - # OS (such as macos -latest) uses python3.12 by default, so python 3.8 - # is used here to avoid this problem. - - name: Set up Python3.8 - uses: actions/setup-python@v5 - with: - python-version: 3.8 - - name: Run CI with NodeJS - run: python ./ci/run_ci.py javascript - - rust: - name: Rust CI - strategy: - matrix: - os: [ubuntu-latest, macos-13, macos-14] # macos-13: x86, macos-14: arm64 - runs-on: ${{ matrix.os }} - timeout-minutes: 45 - steps: - - uses: actions/checkout@v4 - - name: Set up Python 3.11 - uses: actions/setup-python@v5 - with: - python-version: 3.11 - - name: Run Rust CI - run: python ./ci/run_ci.py rust - - cpp: - name: C++ CI - strategy: - matrix: - os: [ubuntu-latest, macos-13, macos-14, windows-2022] # macos-13: x86, macos-14: arm64 - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v4 - - name: Set up Python 3.11 - uses: actions/setup-python@v5 - with: - python-version: 3.11 - - name: Run C++ CI with Bazel - run: python ./ci/run_ci.py cpp - python: - name: Python CI - runs-on: ${{ matrix.os }} - strategy: - matrix: - python-version: [3.8, 3.12, 3.13.3] - os: [ubuntu-latest, ubuntu-24.04-arm, macos-13, macos-14, windows-2022] - steps: - - uses: actions/checkout@v4 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python-version }} - - name: Install bazel - shell: bash - run: python ./ci/run_ci.py cpp --install-deps-only - - name: Run Python CI - shell: bash - run: python ./ci/run_ci.py python - - go: - name: Golang CI - runs-on: ubuntu-latest - strategy: - matrix: - go-version: ["1.13", "1.18"] - steps: - - uses: actions/checkout@v4 - - name: Setup Go ${{ matrix.go-version }} - uses: actions/setup-go@v4 - with: - go-version: ${{ matrix.go-version }} - - name: Display Go version - run: go version - - name: Set up Python3.8 - uses: actions/setup-python@v5 - with: - python-version: 3.8 - - name: Install bazel - run: python ./ci/run_ci.py cpp --install-deps-only - - name: Install python dependencies - run: pip install pyarrow==15.0.0 Cython wheel pytest setuptools -U - - name: Run Golang CI - run: python ./ci/run_ci.py go - - lint: - name: Code Style Check - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Set up JDK ${{ matrix.java-version }} - uses: actions/setup-java@v4 - with: - java-version: 21 - distribution: "oracle" - - name: Check License Header - uses: korandoru/hawkeye@v3 - - name: Set up Python 3.8 - uses: actions/setup-python@v5 - with: - python-version: 3.8 - - name: Use Node.js 20.x - uses: actions/setup-node@v4 - with: - node-version: 20.x - - name: Check code style - run: python ./ci/run_ci.py format diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 0d3728421..0a378f840 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -26,49 +26,33 @@ permissions: contents: read jobs: - build-wheels: - name: Build Wheels - runs-on: ${{ matrix.os }} + build-wheels-linux: + name: Build Wheels on Linux for Python + runs-on: ${{ matrix.config.os }} strategy: matrix: - python-version: [3.8, 3.9, "3.10", 3.11, 3.12, 3.13] - os: [ubuntu-latest, ubuntu-24.04-arm, macos-13, macos-14, windows-2022] # macos-13: x86, macos-14: arm64 - env: - manylinux_x86_64_image: quay.io/pypa/manylinux_2_28_x86_64 - manylinux_aarch64_image: quay.io/pypa/manylinux_2_28_aarch64 - + python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"] + config: + - {os: ubuntu-latest, target: "x86_64", image: "quay.io/pypa/manylinux1_x86_64", plat: "manylinux1_x86_64"} + - {os: ubuntu-latest, target: "x86_64", image: "quay.io/pypa/manylinux2014_x86_64", plat: "manylinux_2_17_x86_64"} + - {os: ubuntu-latest, target: "x86_64", image: "quay.io/pypa/manylinux_2_28_x86_64", plat: "manylinux_2_28_x86_64"} + - {os: ubuntu-latest, target: "aarch64", image: "quay.io/pypa/manylinux_2_28_aarch64", plat: "manylinux_2_28_aarch64"} steps: - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - - name: Install bazel (for macOS and Windows) - if: "!startsWith(matrix.os, 'ubuntu')" - shell: bash - run: | - if [ "$RUNNER_OS" == "Windows" ]; then - ./ci/run_ci.sh install_bazel_windows - else - ./ci/run_ci.sh install_bazel - fi - name: Update version in setup.py shell: bash run: ci/deploy.sh bump_py_version - # --------- Use manylinux for Linux wheels --------- - - name: Build a binary wheel (Linux, manylinux) - if: startsWith(matrix.os, 'ubuntu') + - name: Setup tmate session + uses: mxschmitt/action-tmate@v3 + - name: Build a binary wheel (Linux) shell: bash run: | - DOCKER_IMAGE="" - PLAT="" - if [[ "${{ matrix.os }}" == "ubuntu-latest" ]]; then - DOCKER_IMAGE="${{ env.manylinux_x86_64_image }}" - PLAT="manylinux_2_28_x86_64" - elif [[ "${{ matrix.os }}" == "ubuntu-24.04-arm" ]]; then - DOCKER_IMAGE="${{ env.manylinux_aarch64_image }}" - PLAT="manylinux_2_28_aarch64" - fi + DOCKER_IMAGE="${{ matrix.config.image }}" + PLAT="${{ matrix.config.plat }}" PY_VERSION=${{ matrix.python-version }} echo "PY_VERSION: $PY_VERSION" PY_VERSION=${PY_VERSION//./} @@ -91,10 +75,37 @@ jobs: bash ci/run_ci.sh install_bazel bash ci/deploy.sh build_pyfory " + - name: Upload Wheel Artifact + uses: actions/upload-artifact@v4 + with: + name: pyfory-wheels-${{ matrix.os }}-${{ matrix.python-version }} + path: dist/*.whl - # --------- Native (not in container) for macOS and Windows --------- + build-wheels-macos_and_windows: + name: Build Wheels + runs-on: ${{ matrix.os }} + strategy: + matrix: + python-version: [3.8, 3.9, "3.10", 3.11, 3.12, 3.13] + os: [macos-13, macos-14, windows-2022] # macos-13: x86, macos-14: arm64 + steps: + - uses: actions/checkout@v4 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + - name: Install bazel (for macOS and Windows) + shell: bash + run: | + if [ "$RUNNER_OS" == "Windows" ]; then + ./ci/run_ci.sh install_bazel_windows + else + ./ci/run_ci.sh install_bazel + fi + - name: Update version in setup.py + shell: bash + run: ci/deploy.sh bump_py_version - name: Build a binary wheel (native) - if: "!startsWith(matrix.os, 'ubuntu')" shell: bash run: | ci/deploy.sh build_pyfory @@ -107,7 +118,9 @@ jobs: publish-wheels: name: Publish Wheels runs-on: ubuntu-latest - needs: build-wheels + needs: + - build-wheels-linux + - build-wheels-macos_and_windows permissions: contents: read id-token: write diff --git a/ci/run_ci.sh b/ci/run_ci.sh index 0c4fb52f6..5f628fc74 100755 --- a/ci/run_ci.sh +++ b/ci/run_ci.sh @@ -96,9 +96,9 @@ install_bazel() { BINARY_URL="https://github.com/bazelbuild/bazel/releases/download/${BAZEL_VERSION}/bazel-${BAZEL_VERSION}-${OS}-${ARCH}" echo "Downloading bazel from: $BINARY_URL" - sudo wget -q -O "$BAZEL_DIR/bazel" "$BINARY_URL" || { echo "Failed to download bazel"; exit 1; } + wget -q -O "$BAZEL_DIR/bazel" "$BINARY_URL" || { echo "Failed to download bazel"; exit 1; } - sudo chmod +x "$BAZEL_DIR/bazel" + chmod +x "$BAZEL_DIR/bazel" # Add to current shell's PATH export PATH="$BAZEL_DIR:$PATH" --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
