Skip to content

Commit

Permalink
Adjustements for CI, build wheel
Browse files Browse the repository at this point in the history
  • Loading branch information
theCapypara committed Jul 18, 2024
1 parent 3c59301 commit 0537ee4
Show file tree
Hide file tree
Showing 6 changed files with 81 additions and 19 deletions.
79 changes: 63 additions & 16 deletions .github/workflows/build-test-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -115,32 +115,81 @@ jobs:
path: ${{ github.event_path }}

build:
needs:
- test
- typechecks
runs-on: ubuntu-latest
name: Build the Python wheel
runs-on: ${{ matrix.os }}
name: Build Wheels
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
arch: x86_64
# very slow:
#- os: ubuntu-latest
# arch: arm64
- os: macos-13
arch: x86_64
- os: macos-13
arch: arm64
- os: windows-2019
arch: x86
- os: windows-2019
arch: AMD64
steps:
# For tags we assume the version in pyproject.toml is correct!
- name: Checkout
uses: actions/checkout@v4
with:
submodules: 'recursive'

- name: Rewrite version for dev if not tag
if: "!startsWith(github.ref, 'refs/tags/')"
shell: bash
run: |
perl -i -pe "s/version\s*=\s*\"(.*?)(\.rc.*|\.a.*|\.post.*)?\"/version=\"\1.dev0+${GITHUB_SHA::8}\"/" pyproject.toml
- name: Note version
if: matrix.os != 'windows-2019'
shell: bash
run: |
python3 -m venv .yq-venv
. .yq-venv/bin/activate
pip install yq
echo "PACKAGE_VERSION=$(tomlq '.project.version' pyproject.toml -r)" >> $GITHUB_ENV
- name: Build Python wheels
uses: RalfG/[email protected]_x86_64
- name: Note version (Windows)
if: matrix.os == 'windows-2019'
run: |
pipx install yq
$env:PACKAGE_VERSION = tomlq.exe '.project.version' pyproject.toml -r
echo "PACKAGE_VERSION=$env:PACKAGE_VERSION" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Set up QEMU
if: runner.os == 'Linux'
uses: docker/setup-qemu-action@v3
with:
python-versions: 'cp39-cp39 cp310-cp310 cp311-cp311 cp312-cp312'
platforms: all
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Download GNU Tar
uses: suisei-cn/[email protected]
if: "matrix.os == 'windows-2019'"
with:
url: https://skytemple.org/build_deps/tar.exe
target: "C:\\tarout"
- name: Prepend GNU Tar to Path
if: "matrix.os == 'windows-2019'"
shell: powershell
run:
echo "C:\tarout" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: Install cibuildwheel
run: python -m pip install cibuildwheel
- name: Build wheels
run: python -m cibuildwheel --output-dir dist
env:
CIBW_ARCHS: ${{ matrix.arch }}
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels
name: wheels-${{ matrix.os }}-${{ matrix.arch }}
path: dist/*.whl

deploy:
Expand All @@ -151,13 +200,11 @@ jobs:
steps:
- name: Download wheels
uses: actions/download-artifact@v4
with:
name: wheels
- name: Set up Python 3.11
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Upgrade pip and install Twine
python-version: 3.12
- name: Upgrade pip
run: |
python -m pip install --upgrade pip
pip install twine
Expand All @@ -166,4 +213,4 @@ jobs:
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
run: |
twine upload *.whl
twine upload wheels*/*.whl
4 changes: 4 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
cmake_minimum_required(VERSION 3.15...3.29)
project(explorerscript LANGUAGES CXX)

if(UNIX AND NOT APPLE)
set(CMAKE_POSITION_INDEPENDENT_CODE "ON")
endif()

if(APPLE)
execute_process(
COMMAND brew --prefix llvm
Expand Down
1 change: 1 addition & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ recursive-include explorerscript_parser *.cpp
recursive-include explorerscript_parser *.h
recursive-include explorerscript_parser *.g4
include CMakeLists.txt
include ExternalAntlr4Cpp.cmake
graft antlr4
7 changes: 6 additions & 1 deletion explorerscript_parser/__init__.pyi
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
from typing import Any, TypeAlias, overload
import sys
from typing import Any, overload

if sys.version_info >= (3, 10):
from typing import TypeAlias
else:
from typing_extensions import TypeAlias
Unknown: TypeAlias = Any

class CppExceptionPtr: ...
Expand Down
7 changes: 6 additions & 1 deletion generate_parser_bindings.py
Original file line number Diff line number Diff line change
Expand Up @@ -420,7 +420,12 @@ class PyErrorListener : public ANTLRErrorListener {
f.write(
"\n".join(
[
"from typing import Any, TypeAlias, overload",
"import sys",
"from typing import Any, overload",
"if sys.version_info >= (3, 10):",
" from typing import TypeAlias",
"else:",
" from typing_extensions import TypeAlias",
"Unknown: TypeAlias = Any",
"class CppExceptionPtr: ...",
"class Antlr4ErrorListener:",
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ classifiers = [
]
dependencies = [
'igraph == 0.11.5',
'typing_extensions >= 4.0; python_version < "3.11"'
'typing_extensions >= 4.0; python_version < "3.10"'
]

[project.urls]
Expand Down

0 comments on commit 0537ee4

Please sign in to comment.