Add manual scripts to update pypi and docker in case things go bad! #9
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: Beta Release (PyPI Pre-release) | |
| concurrency: | |
| group: beta-release | |
| cancel-in-progress: true | |
| on: | |
| push: | |
| branches: | |
| - beta | |
| paths: | |
| - "Server/**" | |
| jobs: | |
| publish_pypi_prerelease: | |
| name: Publish beta to PyPI (pre-release) | |
| runs-on: ubuntu-latest | |
| environment: | |
| name: pypi | |
| url: https://pypi.org/p/mcpforunityserver | |
| permissions: | |
| contents: read | |
| id-token: write | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| version: "latest" | |
| enable-cache: true | |
| cache-dependency-glob: "Server/uv.lock" | |
| - name: Generate beta version | |
| id: version | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| RAW_VERSION=$(grep -oP '(?<=version = ")[^"]+' Server/pyproject.toml) | |
| # Strip any existing pre-release suffix (a, b, rc, dev, post) for safe parsing | |
| # e.g., "9.2.0b1" -> "9.2.0", "9.2.0.dev1" -> "9.2.0" | |
| BASE_VERSION=$(echo "$RAW_VERSION" | sed -E 's/(a|b|rc|\.dev|\.post)[0-9]+$//') | |
| # Validate we have a proper X.Y.Z format | |
| if ! [[ "$BASE_VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then | |
| echo "Error: Could not parse version '$RAW_VERSION' -> '$BASE_VERSION'" >&2 | |
| exit 1 | |
| fi | |
| # Bump minor version and use beta suffix (PEP 440 compliant: X.Y+1.0bN) | |
| # This ensures beta is "newer" than the stable release | |
| IFS='.' read -r MAJOR MINOR PATCH <<< "$BASE_VERSION" | |
| NEXT_MINOR=$((MINOR + 1)) | |
| BETA_NUMBER="$(date +%Y%m%d%H%M%S)" | |
| BETA_VERSION="${MAJOR}.${NEXT_MINOR}.0b${BETA_NUMBER}" | |
| echo "Raw version: $RAW_VERSION" | |
| echo "Base version: $BASE_VERSION" | |
| echo "Beta version: $BETA_VERSION" | |
| echo "beta_version=$BETA_VERSION" >> "$GITHUB_OUTPUT" | |
| - name: Update version for beta release | |
| env: | |
| BETA_VERSION: ${{ steps.version.outputs.beta_version }} | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| sed -i "s/^version = .*/version = \"${BETA_VERSION}\"/" Server/pyproject.toml | |
| echo "Updated pyproject.toml:" | |
| grep "^version" Server/pyproject.toml | |
| - name: Build a binary wheel and a source tarball | |
| shell: bash | |
| run: uv build | |
| working-directory: ./Server | |
| - name: Publish distribution to PyPI | |
| uses: pypa/gh-action-pypi-publish@release/v1 | |
| with: | |
| packages-dir: Server/dist/ |