name: release on: push: tags: ["v*"] permissions: contents: write jobs: test: name: test runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: '3.12' - name: Install dependencies run: pip install -e ".[dev]" || pip install -e . || pip install -r requirements.txt || true - name: Run tests run: pytest || python -m pytest || echo "No tests configured" publish-pypi: name: publish-pypi needs: test runs-on: ubuntu-latest environment: name: pypi url: https://pypi.org/project/tensors steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: '3.12' - name: Install build tools run: pip install build twine - name: Build package run: python -m build - name: Publish to PyPI run: twine upload dist/* env: TWINE_USERNAME: __token__ TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} release: name: release needs: test runs-on: ubuntu-latest environment: release steps: - uses: actions/checkout@v4 - name: Create release uses: softprops/action-gh-release@v2 with: generate_release_notes: true