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@v7 # 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@v8 # 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@v8 # 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@v8 # 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