Skip to content

Build Containerized Release Wheels #80

Build Containerized Release Wheels

Build Containerized Release Wheels #80

# 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.
# All `uses:` action pins in this workflow must come from the Apache action allowlist:
# https://github.com/apache/infrastructure-actions/blob/main/actions.yml
name: Build Containerized Release Wheels
on:
push:
tags: ['v*'] # NO PATH FILTER - critical for releases
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, ubuntu-24.04-arm]
python:
- cp38-cp38
- cp39-cp39
- cp310-cp310
- cp311-cp311
- cp312-cp312
- cp313-cp313
- cp314-cp314
steps:
- uses: actions/checkout@v5
- name: Set up Bazel
uses: bazel-contrib/setup-bazel@c5acdfb288317d0b5c0bbd7a396a3dc868bb0f86 # 0.19.0
with:
bazelisk-cache: true
bazelisk-version: '1.x'
- name: Bump version
# Pass the tag name from the push (e.g. "v0.12.1b1"); deploy.sh will strip leading "v".
run: ./ci/deploy.sh bump_py_version "${{ github.ref_name }}"
- name: Build and test wheels
run: ./ci/build_linux_wheels.py --arch ${{ runner.arch }} --python ${{ matrix.python }} --release --bazel-bin "$(command -v bazel)"
- name: Upload wheels as artifacts
uses: actions/upload-artifact@v4
with:
name: pyfory-wheels-${{ matrix.os }}-${{ matrix.python }}-${{ github.ref_name }}
path: dist/*.whl