bump version number to 3.3.4 #22
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: Release and Publish | |
| on: | |
| push: | |
| tags: | |
| - 'v*' # Triggers on version tags like v1.0.0, v3.0.1, etc. | |
| permissions: | |
| contents: write | |
| id-token: write | |
| jobs: | |
| release-and-publish: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: '3.11' | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install build twine | |
| pip install '.[web,dev]' | |
| - name: Run linters and type checks | |
| run: | | |
| flake8 ttsfm ttsfm-web | |
| mypy ttsfm | |
| black --check ttsfm ttsfm-web tests | |
| - name: Run tests | |
| run: pytest | |
| - name: Test package install and import | |
| run: | | |
| python -c "import ttsfm; print('TTSFM imported successfully')" | |
| python -c "from ttsfm import TTSClient; print('TTSClient imported successfully')" | |
| python -m ttsfm.cli --help > /dev/null | |
| echo 'CLI smoke test passed' | |
| - name: Build package | |
| run: | | |
| python -m build | |
| echo "Package built successfully" | |
| ls -la dist/ | |
| - name: Check package | |
| run: | | |
| twine check dist/* | |
| echo "Package validation passed" | |
| - name: Publish to PyPI | |
| uses: pypa/gh-action-pypi-publish@release/v1 | |
| with: | |
| attestations: true | |
| skip-existing: true | |
| - name: Extract version (strip leading v) | |
| id: ver | |
| run: echo "version=${GITHUB_REF_NAME#v}" >> "$GITHUB_OUTPUT" | |
| - name: Create GitHub Release | |
| uses: softprops/action-gh-release@v1 | |
| with: | |
| body: | | |
| ## TTSFM ${{ github.ref_name }} | |
| New release of TTSFM - Free Text-to-Speech API with OpenAI compatibility. | |
| ### Installation | |
| ```bash | |
| pip install ttsfm==${{ steps.ver.outputs.version }} | |
| ``` | |
| ### Quick Start | |
| ```python | |
| from ttsfm import TTSClient | |
| client = TTSClient() | |
| response = client.generate_speech("Hello from TTSFM!") | |
| response.save_to_file("hello") | |
| ``` | |
| ### Docker | |
| ```bash | |
| docker run -p 8000:8000 dbcccc/ttsfm:latest | |
| ``` | |
| ### Features | |
| - Completely free (uses openai.fm service) | |
| - OpenAI-compatible API | |
| - 11 voices available | |
| - 6 audio formats (MP3, WAV, OPUS, AAC, FLAC, PCM) | |
| - Async and sync clients | |
| - Web interface included | |
| - CLI tool available | |
| ### Documentation | |
| See [README](https://github.com/dbccccccc/ttsfm#readme) for full documentation. | |
| draft: false | |
| prerelease: ${{ contains(github.ref_name, '-' ) }} | |