Skip to content

Test

Test #38

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@v4
- 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@v4
with:
path: .\delphivcl\__init__.pyi
key: ${{ runner.os }}-cache-${{ hashFiles('.\delphivcl\*') }}
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', '3.12']
include:
- os: [windows-latest]
arch: ["x86"]
steps:
- name: Check out repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Restore Cached Stubs
id: cache-stubs
uses: actions/cache@v4
with:
path: .\delphivcl\__init__.pyi
key: ${{ runner.os }}-cache-${{ hashFiles('.\delphivcl\*') }}
restore-keys: |
${{ runner.os }}-cache-
- 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@v4
with:
name: artifacts-${{ runner.os }}-${{ matrix.python }}
path: dist/*.whl
if-no-files-found: error
overwrite: true
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', '3.12']
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@v4
with:
path: .\delphivcl\__init__.pyi
key: ${{ runner.os }}-cache-${{ hashFiles('.\delphivcl\*') }}
restore-keys: |
${{ runner.os }}-cache-
- 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@v4
with:
name: artifacts-${{ runner.os }}-${{ matrix.python }}
path: dist/*.whl
if-no-files-found: error
overwrite: true
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@v4
with:
pattern: artifacts-*
path: dist
merge-multiple: true
- 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@v4
with:
pattern: artifacts-*
path: dist
merge-multiple: true
- name: Publish package to PyPI
uses: pypa/gh-action-pypi-publish@release/v1