TypeCheck Frontend #5666
Workflow file for this run
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: Build and Distribute PhotonLibPy | |
| permissions: | |
| id-token: write # IMPORTANT: this permission is mandatory for trusted publishing | |
| on: | |
| push: | |
| pull_request: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| build-py: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: 3.14 | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install setuptools wheel | |
| - name: Build wheel | |
| working-directory: ./photon-lib/py | |
| run: python setup.py sdist bdist_wheel | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: dist | |
| path: ./photon-lib/py/dist/ | |
| test-py: | |
| needs: build-py | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: 3.14 | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install pytest mypy | |
| - name: Download artifacts | |
| uses: actions/download-artifact@v6 | |
| with: | |
| name: dist | |
| path: dist/ | |
| - name: Install package | |
| shell: bash | |
| run: pip install --no-cache-dir dist/*.whl | |
| - name: Run Unit Tests | |
| shell: bash | |
| run: pytest --import-mode=importlib photon-lib/py/test/ | |
| - name: Run mypy type checking | |
| run: mypy --show-column-numbers --config-file photon-lib/py/pyproject.toml photon-lib | |
| build-python-examples: | |
| needs: build-py | |
| strategy: | |
| matrix: | |
| os: [ubuntu-24.04, windows-2022, macos-14] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: 3.14 | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| - name: Download artifacts | |
| uses: actions/download-artifact@v6 | |
| with: | |
| name: dist | |
| path: ./photon-lib/py/dist/ | |
| - name: Install PhotonLibPy package | |
| working-directory: ./photon-lib/py | |
| shell: bash | |
| run: | | |
| pip install --no-cache-dir dist/*.whl | |
| - name: Build Python examples | |
| working-directory: photonlib-python-examples | |
| shell: bash | |
| run: | | |
| for folder in */; | |
| do | |
| echo $folder | |
| ./run.sh $folder | |
| done | |
| deploy: | |
| needs: [test-py, build-python-examples] | |
| runs-on: ubuntu-24.04 | |
| # Only upload on tags | |
| if: startsWith(github.ref, 'refs/tags/v') | |
| steps: | |
| - name: Download artifacts | |
| uses: actions/download-artifact@v6 | |
| with: | |
| name: dist | |
| path: dist/ | |
| - name: Publish package distributions to PyPI | |
| uses: pypa/gh-action-pypi-publish@release/v1 | |
| with: | |
| packages-dir: ./dist/ | |
| permissions: | |
| id-token: write # IMPORTANT: this permission is mandatory for trusted publishing |