name: Publish cloudbridge to PyPI on: release: types: [published] push: tags: - '*' jobs: build_packages: name: Build Python 🐍 distributions 📦 runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 with: persist-credentials: false - name: Set up Python 3.13 uses: actions/setup-python@v6 with: python-version: 3.13 - name: Install dependencies run: | python3 -m pip install --upgrade pip python3 -m pip install --upgrade build twine - name: Create and check packages run: | python3 -m build twine check dist/* ls -l dist - uses: actions/upload-artifact@v7 with: name: packages path: dist/ publish: name: Publish distributions 📦 to PyPI and TestPyPI needs: [build_packages] runs-on: ubuntu-latest environment: pypi permissions: id-token: write # Required for trusted publishing to PyPI steps: - uses: actions/download-artifact@v8 with: name: packages path: dist - name: Publish distribution 📦 to Test PyPI uses: pypa/gh-action-pypi-publish@v1.14.0 with: repository_url: https://test.pypi.org/legacy/ skip_existing: true - name: Publish distribution 📦 to PyPI if: github.event_name == 'release' uses: pypa/gh-action-pypi-publish@v1.14.0