chore: bump version to 0.10.1 (#25) #8
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 gate & publish | ||
| on: | ||
| push: | ||
| tags: | ||
| - "v*.*.*" | ||
| env: | ||
| PYTHON_VERSION: "3.13" | ||
| PYPI_PROJECT_URL: https://pypi.org/p/teslemetry-stream | ||
| ENVIRONMENT_NAME: pypi | ||
| jobs: | ||
| lint: | ||
| name: Lint & type-check | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Install uv | ||
| uses: astral-sh/setup-uv@v5 | ||
| with: | ||
| enable-cache: true | ||
| - name: Install dependencies | ||
| run: uv sync | ||
| - name: Ruff | ||
| run: uv run --with ruff ruff check teslemetry_stream | ||
| - name: Mypy | ||
| run: uv run --with mypy mypy teslemetry_stream | ||
| test: | ||
| name: Test (Python ${{ matrix.python-version }}) | ||
| runs-on: ubuntu-latest | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Install uv | ||
| uses: astral-sh/setup-uv@v5 | ||
| with: | ||
| enable-cache: true | ||
| - name: Set up Python ${{ matrix.python-version }} | ||
| run: uv python install ${{ matrix.python-version }} | ||
| - name: Install dependencies | ||
| run: uv sync --python ${{ matrix.python-version }} | ||
| - name: Run tests | ||
| run: | | ||
| shopt -s nullglob | ||
| files=(tests/test_*.py) | ||
| if [ ${#files[@]} -eq 0 ]; then | ||
| echo "No test files found under tests/ - failing." >&2 | ||
| exit 1 | ||
| fi | ||
| for f in "${files[@]}"; do | ||
| echo "Running $f" | ||
| uv run python "$f" | ||
| done | ||
| build: | ||
| name: Build distribution | ||
| needs: [lint, test] | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Install uv | ||
| uses: astral-sh/setup-uv@v5 | ||
| with: | ||
| enable-cache: true | ||
| - name: Set up Python ${{ env.PYTHON_VERSION }} | ||
| run: uv python install ${{ env.PYTHON_VERSION }} | ||
| - name: Build | ||
| run: uv build | ||
| - name: Check distribution | ||
| run: uv run --with twine twine check dist/* | ||
| - name: Upload artifacts | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: python-package-distributions | ||
| path: dist/ | ||
| publish-to-pypi: | ||
| name: Publish distribution to PyPI | ||
| needs: build | ||
| runs-on: ubuntu-latest | ||
| environment: | ||
| name: ${{ env.ENVIRONMENT_NAME }} | ||
| url: ${{ env.PYPI_PROJECT_URL }} | ||
| permissions: | ||
| id-token: write | ||
| steps: | ||
| - name: Download all the dists | ||
| uses: actions/download-artifact@v4 | ||
| with: | ||
| name: python-package-distributions | ||
| path: dist/ | ||
| - name: Publish distribution to PyPI | ||
| uses: pypa/gh-action-pypi-publish@release/v1 | ||
| github-release: | ||
| name: Upload distribution to GitHub Release | ||
| needs: publish-to-pypi | ||
| runs-on: ubuntu-latest | ||
| permissions: | ||
| contents: write # mandatory for making GitHub Releases | ||
| steps: | ||
| - name: Download all the dists | ||
| uses: actions/download-artifact@v4 | ||
| with: | ||
| name: python-package-distributions | ||
| path: dist/ | ||
| - name: Create GitHub Release | ||
| env: | ||
| GITHUB_TOKEN: ${{ github.token }} | ||
| run: >- | ||
| gh release create | ||
| '${{ github.ref_name }}' | ||
| --repo '${{ github.repository }}' | ||
| --generate-notes | ||
| - name: Upload artifacts to GitHub Release | ||
| env: | ||
| GITHUB_TOKEN: ${{ github.token }} | ||
| run: >- | ||
| gh release upload | ||
| '${{ github.ref_name }}' dist/** | ||
| --repo '${{ github.repository }}' | ||