version controll #4
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: Publish | |
| on: | |
| push: | |
| tags: | |
| - "v*" | |
| strategy: | |
| matrix: | |
| python-version: ["3.11"] | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install uv | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install uv | |
| - name: Install dev/test dependencies | |
| run: | | |
| pip install -e ".[dev]" | |
| pip install -e ".[test]" | |
| - name: Run tests | |
| run: | | |
| uv run pytest | |
| - name: Run ruff | |
| run: | | |
| uv run ruff check . | |
| - name: Run black | |
| run: | | |
| uv run black . --check | |
| - name: Run isort | |
| run: | | |
| uv run isort . --check-only | |
| - name: Run mypy | |
| run: | | |
| uv run mypy mcp_shell_server tests | |
| publish: | |
| needs: test | |
| runs-on: ubuntu-latest | |
| environment: release | |
| permissions: | |
| id-token: write | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Update version from tag | |
| run: | | |
| # Strip 'v' prefix from tag and update version.py | |
| VERSION=${GITHUB_REF#refs/tags/v} | |
| echo "__version__ = \"${VERSION}\"" > mcp_shell_server/version.py | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install uv | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install uv | |
| - name: Build package | |
| run: | | |
| uv build | |
| - name: Publish to PyPI | |
| env: | |
| PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} | |
| run: | | |
| uv publish --token $PYPI_TOKEN |