Deploy #23
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |