Skip to content

Deployment

Deployment #360

Workflow file for this run

name: Deployment
on:
schedule:
- cron: '0 12 * * 0'
workflow_dispatch:
branches:
- master
- development
- development_*
inputs:
version:
description: 'Dear PyGui Version'
required: false
default: '2.0.0b1'
deploy:
description: 'Deploy (true will deploy to pypi)'
required: false
default: 'false'
deploytest:
description: 'Deploy (true will deploy to test pypi)'
required: false
default: 'false'
jobs:
build-windows-wheels:
runs-on: windows-2019
strategy:
matrix:
python-version: [ 3.8, 3.9, "3.10", "3.11", "3.12" ]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Retrieve submodules
shell: cmd
run: |
git submodule update --init --recursive ./thirdparty/imgui
git submodule update --init --recursive ./thirdparty/implot
git submodule update --init --recursive ./thirdparty/freetype
- name: Mark Versions
shell: cmd
run: |
cd %GITHUB_WORKSPACE%
echo ${{ github.event.inputs.version }} > version_number.txt
- name: Build Wheel
shell: cmd
run: |
cd %GITHUB_WORKSPACE%
python -m pip install --upgrade pip twine wheel setuptools
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-mac10-wheels:
runs-on: macos-12
strategy:
matrix:
python-version: [ 3.8, 3.9, "3.10", "3.11", "3.12" ]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Retrieve submodules
run: |
git submodule update --init --recursive ./thirdparty/imgui
git submodule update --init --recursive ./thirdparty/implot
git submodule update --init --recursive ./thirdparty/glfw
- name: Mark Versions
run: |
cd $GITHUB_WORKSPACE
echo ${{ github.event.inputs.version }} > version_number.txt
- name: Build Wheel
run: |
cd $GITHUB_WORKSPACE
python -m pip install --upgrade pip twine wheel setuptools
python -m setup bdist_wheel --plat-name macosx-10.6-x86_64 --dist-dir dist
- name: Upload MacOS 10.15 ${{ matrix.python-version }} Wheel
uses: actions/upload-artifact@v4
with:
name: apple10build${{ matrix.python-version }}
path: ${{ github.workspace }}/dist/*.whl
overwrite: true
build-mac-silicon-wheels:
runs-on: macos-latest-xlarge
strategy:
matrix:
python-version: [ "3.10", "3.11", "3.12" ]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Retrieve submodules
run: |
git submodule update --init --recursive ./thirdparty/imgui
git submodule update --init --recursive ./thirdparty/implot
git submodule update --init --recursive ./thirdparty/glfw
- name: Mark Versions
run: |
cd $GITHUB_WORKSPACE
echo ${{ github.event.inputs.version }} > version_number.txt
- name: Build Wheel
run: |
cd $GITHUB_WORKSPACE
python -m pip install --upgrade pip twine wheel setuptools
python -m setup bdist_wheel --plat-name macosx-13.0-arm64 --dist-dir dist
- name: Upload MacOS ${{ matrix.python-version }} Wheel
uses: actions/upload-artifact@v4
with:
name: apple10sbuild${{ matrix.python-version }}
path: ${{ github.workspace }}/dist/*.whl
overwrite: true
build-linux-wheels:
runs-on: ubuntu-20.04
env:
CXX: g++-9
strategy:
matrix:
python-version: [ 3.8, 3.9, "3.10", "3.11", "3.12" ]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Retrieve submodules/Dependencies
run: |
git submodule update --init --recursive ./thirdparty/imgui
git submodule update --init --recursive ./thirdparty/implot
git submodule update --init --recursive ./thirdparty/glfw
sudo apt-get update
sudo apt-get install libglu1-mesa-dev libgl1-mesa-dev xorg-dev libxrandr-dev -y
- name: Mark Versions
run: |
cd $GITHUB_WORKSPACE
echo ${{ github.event.inputs.version }} > version_number.txt
- 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-mac10-wheels, build-linux-wheels, build-mac-silicon-wheels]
runs-on: windows-2019
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python 3.9
uses: actions/setup-python@v4
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 apple10build*/* -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 apple10build*/* -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