Skip to content

Commit

Permalink
feat(ci): build aarch64 for linux, universal2 for mac, and auto-creat…
Browse files Browse the repository at this point in the history
…e releases on tag push
  • Loading branch information
amaanq committed Nov 13, 2023
1 parent 31dd055 commit 38cb5f9
Showing 1 changed file with 31 additions and 12 deletions.
43 changes: 31 additions & 12 deletions .github/workflows/pypi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,19 @@ name: Upload to PyPI
on:
push:
tags:
- 'v[0-9]+.*'
- 'test-v[0-9]+.*' # Uploads to https://test.pypi.org/project/tree-sitter/
- "v[0-9]+.*"
- "test-v[0-9]+.*" # Uploads to https://test.pypi.org/project/tree-sitter/

jobs:
build-sdist:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
submodules: true
- uses: actions/setup-python@v4
with:
python-version: '3.10'
python-version: "3.10"
- run: python setup.py sdist
- uses: actions/upload-artifact@v3
with:
Expand All @@ -29,25 +29,31 @@ jobs:
os: [ubuntu-20.04, macos-11, windows-2022]

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
submodules: true

- uses: actions/setup-python@v4
with:
python-version: '3.10'
python-version: "3.10"

- if: ${{ startsWith(matrix.os, 'windows') }}
run: script\fetch-fixtures.cmd
- if: ${{ !startsWith(matrix.os, 'windows') }}
run: script/fetch-fixtures

# Build wheels
- run: pip install cibuildwheel==2.16.1
- run: python -m cibuildwheel --output-dir dist
- name: Set up QEMU
if: runner.os == 'Linux'
uses: docker/setup-qemu-action@v3
with:
platforms: all

- name: Build wheels
uses: pypa/[email protected]
env:
CIBW_TEST_COMMAND: python -m unittest discover -s {package}/tests
CIBW_ARCHS_MACOS: x86_64 arm64
CIBW_ARCHS_MACOS: x86_64 arm64 universal2
CIBW_ARCHS_LINUX: auto aarch64

# Make wheels downloadable from GitHub UI and from the pypi step
- uses: actions/upload-artifact@v3
Expand All @@ -68,16 +74,29 @@ jobs:

# https://stackoverflow.com/a/58478262
- if: ${{ startsWith(github.ref, 'refs/tags/test-v') }}
name: 'Upload to test.pypi.org'
name: "Upload to test.pypi.org"
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.TEST_PYPI_API_TOKEN }}
repository_url: https://test.pypi.org/legacy/

- if: ${{ startsWith(github.ref, 'refs/tags/v') }}
name: 'Upload to pypi.org'
name: "Upload to pypi.org"
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}

- if: ${{ startsWith(github.ref, 'refs/tags/v') }}
name: "Create GitHub Release"
uses: actions/create-release@v1
with:
tag_name: ${{ github.ref }}
release_name: ${{ github.ref }}
draft: false
prerelease: false
files: |
dist/*.whl
dist/*.tar.gz
token: ${{ secrets.GITHUB_TOKEN }}

0 comments on commit 38cb5f9

Please sign in to comment.