Skip to content

Building and releasing stubs #15

Building and releasing stubs

Building and releasing stubs #15

Workflow file for this run

name: Build
on:
push:
# Manual run
workflow_dispatch:
jobs:
build_stubs:
name: Build VCL Stubs
runs-on: ${{ matrix.os }}
strategy:
matrix:
python: ['3.11']
include:
- os: [windows-latest]
arch: ["AMD64"]
steps:
- name: Check out repository
uses: actions/checkout@v3
- name: Build and Install VCL
run: |
python -m pip install setuptools --upgrade
python -m pip install wheel --upgrade
python setup.py install
- name: Install mypy
run: |
python -m pip install git+https://github.com/lmbelo/mypy.git
- name: Build Stubs
run: |
python -m mypy.stubgen -m delphivcl -o .\delphivcl --include-docstrings
ren .\delphivcl\delphivcl.pyi __init__.pyi
- name: Cache Stubs
id: cache-stubs
uses: actions/cache@v3
with:
path: .\delphivcl\__init__.pyi
key: ${{ runner.os }}-stubs
build_wheels_win_32:
name: Build Windows x86 wheels for Python ${{ matrix.python }}
needs: [build_stubs]
runs-on: ${{ matrix.os }}
strategy:
matrix:
python: ['3.6', '3.7', '3.8', '3.9', '3.10', '3.11']
include:
- os: [windows-latest]
arch: ["x86"]
steps:
- name: Check out repository
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Restore Cached Stubs
id: cache-stubs
uses: actions/cache@v3
with:
path: .\delphivcl\__init__.pyi
key: ${{ runner.os }}-stubs
- name: Set up Python ${{ matrix.python }}
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python }}
architecture: "x86"
- name: Build bdist wheel
run: |
python -m pip install setuptools --upgrade
python -m pip install wheel --upgrade
python setup.py bdist_wheel --plat-name=win32
- name: Save wheel
uses: actions/upload-artifact@v2
with:
path: dist/*.whl
if-no-files-found: error
build_wheels_win_64:
name: Build Windows x64 wheels for Python ${{ matrix.python }}
needs: [build_stubs]
runs-on: ${{ matrix.os }}
strategy:
matrix:
python: ['3.6', '3.7', '3.8', '3.9', '3.10', '3.11']
include:
- os: [windows-latest]
arch: ["AMD64"]
steps:
- name: Check out repository
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Restore Cached Stubs
id: cache-stubs
uses: actions/cache@v3
with:
path: .\delphivcl\__init__.pyi
key: ${{ runner.os }}-stubs
- name: Set up Python ${{ matrix.python }}
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python }}
architecture: "x64"
- name: Build bdist wheel
run: |
python -m pip install setuptools --upgrade
python -m pip install wheel --upgrade
python setup.py bdist_wheel --plat-name=win_amd64
- name: Save wheel
uses: actions/upload-artifact@v2
with:
path: dist/*.whl
if-no-files-found: error
upload_pypi_test:
name: Upload to PyPI test
needs: [build_wheels_win_32, build_wheels_win_64]
runs-on: ubuntu-latest
environment:
name: pypi
url: https://test.pypi.org/project/delphivcl
permissions:
id-token: write
if: github.ref == 'refs/heads/main'
steps:
- uses: actions/download-artifact@v2
with:
name: artifact
path: dist
- name: Publish package to TestPyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
repository_url: https://test.pypi.org/legacy/
upload_pypi:
name: Upload to PyPI
needs: [build_wheels_win_32, build_wheels_win_64]
runs-on: ubuntu-latest
environment:
name: pypi
url: https://pypi.org/project/delphivcl/
permissions:
id-token: write
if: startsWith(github.ref, 'refs/tags/v')
steps:
- uses: actions/download-artifact@v2
with:
name: artifact
path: dist
- name: Publish package to PyPI
uses: pypa/gh-action-pypi-publish@release/v1