Skip to content

Update to TileDB Core 2.25.0 (#465) #29

Update to TileDB Core 2.25.0 (#465)

Update to TileDB Core 2.25.0 (#465) #29

Workflow file for this run

name: Build wheels
on:
workflow_dispatch:
push:
branches:
- release-*
- "*wheel*" # must quote since "*" is a YAML reserved character; we want a string
tags:
- "*"
pull_request:
branches:
- "*wheel*" # must quote since "*" is a YAML reserved character; we want a string
jobs:
generate_backwards_compatibility_data:
name: Generate Backwards Compatibility Data
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
# Based on https://github.com/TileDB-Inc/conda-forge-nightly-controller/blob/51519a0f8340b32cf737fcb59b76c6a91c42dc47/.github/workflows/activity.yml#L19C10-L19C10
- name: Setup git
run: |
git config user.name "GitHub Actions"
git config user.email "runneradmin@users.noreply.github.com"
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: "3.9"
- name: Print Python version
run: |
which python
which pip
python --version
- name: Build Indexes
run: |
# Get the release tag.
release_tag=$(git describe --tags --abbrev=0)
echo $release_tag
# Install dependencies.
pip install .
# Generate data.
result=$(python backwards-compatibility-data/generate_data.py $release_tag)
echo "Should we upload these generated indexes? $result"
# Fetch.
echo "git fetch"
git fetch
# Create a new branch for the changes.
branch_name="update-backwards-compatibility-data-${release_tag}"
echo "git checkout -b $branch_name"
git checkout -b "$branch_name"
# Stage all changes within backwards-compatibility-data/data/.
echo "git add backwards-compatibility-data/data/"
git add backwards-compatibility-data/data/
# Commit the staged changes.
echo "git commit -m '[automated] Update backwards-compatibility-data for release $release_tag'"
git commit -m "[automated] Update backwards-compatibility-data for release $release_tag"
# Reset other changes to match main branch - we do this in case the release branch had commits that were not in main.
echo "git reset --hard origin/main"
git reset --hard origin/main
# Re-apply the commit with the backwards-compatibility-data changes.
echo "git cherry-pick HEAD@{1}"
git cherry-pick HEAD@{1}
# Push to the branch.
echo "git push origin $branch_name"
git push origin "$branch_name"
# Create a PR from this new branch to main.
echo "gh pr create"
gh pr create --base main --head "$branch_name" --title "[automated] Update backwards-compatibility-data for release $release_tag" --body "This PR contains backwards compatibility indexes generated for release $release_tag."
env:
GH_TOKEN: ${{ github.token }}
build_wheels:
name: Wheel ${{ matrix.buildplat[0] }}-${{ matrix.buildplat[1] }}-${{ matrix.python }}
runs-on: ${{ matrix.buildplat[0] }}
strategy:
matrix:
buildplat:
- [ubuntu-22.04, manylinux_x86_64]
- [macos-13, macosx_x86_64]
- [macos-13, macosx_arm64]
- [windows-2022, win_amd64]
python: ["cp39", "cp310", "cp311", "cp312", "pp39"]
exclude:
- buildplat: [macos-13, macosx_arm64]
python: "pp39"
steps:
- uses: actions/checkout@v3
- name: "Brew setup on macOS" # x-ref c8e49ba8f8b9ce
if: ${{ startsWith(matrix.os, 'macos-') == true }}
run: |
set -e pipefail
brew update
brew install automake pkg-config ninja llvm
- name: Build wheels
uses: pypa/cibuildwheel@v2.16.5
env:
CIBW_BUILD_VERBOSITY: 3
CIBW_ENVIRONMENT_MACOS: >
CC=clang
CXX=clang++
MACOSX_DEPLOYMENT_TARGET: "12.0"
CIBW_ARCHS: all
CIBW_PRERELEASE_PYTHONS: True
CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }}
with:
output-dir: wheelhouse
- uses: actions/upload-artifact@v4
with:
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
path: "./wheelhouse/*.whl"
build_sdist:
name: Build source distribution
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build sdist
run: pipx run build --sdist
- uses: actions/upload-artifact@v4
with:
path: dist/*.tar.gz
upload_pypi:
needs: [build_wheels, build_sdist, generate_backwards_compatibility_data]
runs-on: ubuntu-latest
environment: pypi
permissions:
id-token: write
outputs:
package_version: ${{ steps.get_package_version.outputs.package_version }}
steps:
- uses: actions/download-artifact@v4
with:
path: dist
merge-multiple: true
- id: get_package_version
run: |
echo "package_version=$(ls dist/ | head -n 1 | cut -d - -f 2)" >> "$GITHUB_OUTPUT"
- name: Upload to test-pypi
if: ${{ github.event_name == 'workflow_dispatch' }}
uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: https://test.pypi.org/legacy/
- name: Upload to pypi
if: ${{ github.event_name != 'workflow_dispatch' }}
uses: pypa/gh-action-pypi-publish@release/v1