Skip to content

Deploy

Deploy #23

Workflow file for this run

name: Deploy
on:
workflow_dispatch:
inputs:
version:
description: 'pilotlight version'
required: true
default: '0.1.0'
deploy:
description: 'Deploy (true will deploy to pypi)'
required: true
default: 'false'
deploytest:
description: 'Deploy (true will deploy to test pypi)'
required: true
default: 'false'
jobs:
build-windows-wheels:
runs-on: windows-2022
strategy:
matrix:
python-version: [ 3.14 ]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Show Python build paths
run: |
python -c "import sys, sysconfig; print(sys.executable); print(sys.version)"
python -c "import sysconfig; print('include=', sysconfig.get_paths()['include'])"
python -c "import sysconfig; print('platinclude=', sysconfig.get_paths().get('platinclude'))"
python -c "import sysconfig; print('EXT_SUFFIX=', sysconfig.get_config_var('EXT_SUFFIX'))"
- name: Install Dependencies
run: |
Invoke-WebRequest -Uri "https://sdk.lunarg.com/sdk/download/1.3.296.0/windows/VulkanSDK-1.3.296.0-Installer.exe" -OutFile VulkanSDK.exe
# ./VulkanSDK.exe --help
./VulkanSDK.exe --accept-licenses --default-answer --root D:/a/VulkanSDK --confirm-command install
python -m pip install pl-build
python -m pip install --upgrade pip twine wheel setuptools
cd ..
git clone https://github.com/PilotLightTech/pilotlight
cd pilotlight-python
- name: Build package
shell: cmd
run: |
set VULKAN_SDK=D:/a/VulkanSDK
cd %GITHUB_WORKSPACE%
cd scripts
python gen_build.py
cd ../src
build.bat -c deploy
cd ..
- name: Build Wheel
shell: cmd
run: |
cd %GITHUB_WORKSPACE%
python -m setup bdist_wheel --plat-name win_amd64 --dist-dir dist
- name: Upload Windows ${{ matrix.python-version }} Wheel
uses: actions/upload-artifact@v4
with:
name: windowsbuild${{ matrix.python-version }}
path: ${{ github.workspace }}/dist/*.whl
overwrite: true
build-linux-wheels:
runs-on: ubuntu-22.04
env:
CXX: g++-10
strategy:
matrix:
python-version: ["3.12"]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Show Python build paths
run: |
python -c "import sys, sysconfig; print(sys.executable); print(sys.version)"
python -c "import sysconfig; print('include=', sysconfig.get_paths()['include'])"
python -c "import sysconfig; print('platinclude=', sysconfig.get_paths().get('platinclude'))"
python -c "import sysconfig; print('EXT_SUFFIX=', sysconfig.get_config_var('EXT_SUFFIX'))"
- name: Show Python build paths 2
run: |
cd /opt/hostedtoolcache/Python/3.12.12/x64
ls
cd include
cd python3.12
ls
- name: Install Dependencies
run: |
wget -qO- https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo tee /etc/apt/trusted.gpg.d/lunarg.asc
sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-1.4.309-jammy.list https://packages.lunarg.com/vulkan/1.4.309/lunarg-vulkan-1.4.309-jammy.list
sudo apt update
sudo apt install vulkan-sdk
sudo apt install libx11-dev
sudo apt install libxkbcommon-x11-dev
sudo apt install libx11-xcb-dev
sudo apt install libxcb-xfixes0-dev
sudo apt install libxcb-cursor-dev
sudo apt install libxcb-cursor0
sudo apt install libxcb-keysyms1-dev
sudo apt install libxcursor-dev
sudo apt install libxrandr-dev
sudo apt install libxinerama-dev
sudo apt install libgl-dev
sudo apt install libxi-dev
cd $GITHUB_WORKSPACE
cd ..
git clone https://github.com/PilotLightTech/pilotlight
cd pilotlight-python
python -m pip install pl-build
- name: Build Package
run: |
cd $GITHUB_WORKSPACE
cd scripts
python3 gen_build.py
cd ../src
chmod +x build.sh
./build.sh -c deploy
cd ..
- name: Build Wheel
run: |
cd $GITHUB_WORKSPACE
python -m pip install --upgrade pip twine wheel setuptools
python -m setup bdist_wheel --plat-name manylinux1_x86_64 --dist-dir dist
- name: Upload Linux ${{ matrix.python-version }} Wheel
uses: actions/upload-artifact@v4
with:
name: linuxbuild${{ matrix.python-version }}
path: ${{ github.workspace }}/dist/*.whl
overwrite: true
deploy-packages:
needs: [build-windows-wheels, build-linux-wheels]
runs-on: windows-2022
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python 3.9
uses: actions/setup-python@v5
with:
python-version: 3.9
- name: Install Dependencies
run: |
python -m pip install --upgrade pip setuptools wheel twine
- name: Download artifacts
uses: actions/download-artifact@v4
- name: PyPi Deployment
shell: cmd
if: ${{contains(github.event.inputs.deploy, 'true') && github.ref == 'refs/heads/master'}}
run: |
python -m twine upload windowsbuild*/* -u __token__ -p ${{ secrets.PYPI_PASSWORD }} --skip-existing
python -m twine upload apple10sbuild*/* -u __token__ -p ${{ secrets.PYPI_PASSWORD }} --skip-existing
python -m twine upload linuxbuild*/* -u __token__ -p ${{ secrets.PYPI_PASSWORD }} --skip-existing
- name: Test PyPi Deployment
shell: cmd
if: "contains(github.event.inputs.deploytest, 'true')"
run: |
dir
python -m twine upload --repository testpypi windowsbuild*/* -u __token__ -p ${{ secrets.TEST_PYPI_PASSWORD }} --skip-existing
python -m twine upload --repository testpypi apple10sbuild*/* -u __token__ -p ${{ secrets.TEST_PYPI_PASSWORD }} --skip-existing
python -m twine upload --repository testpypi linuxbuild*/* -u __token__ -p ${{ secrets.TEST_PYPI_PASSWORD }} --skip-existing