|
51 | 51 | curl -sSL https://install.python-poetry.org | python - -y --version 1.5.1 |
52 | 52 | - name: Install dependencies |
53 | 53 | run: poetry install |
54 | | - - name: Publish to pypi |
| 54 | + |
| 55 | + - name: Verify package versions match release tag |
| 56 | + run: | |
| 57 | + TAG_VERSION="${GITHUB_REF_NAME#v}" |
| 58 | + ROOT_VERSION="$(python - <<'PY' |
| 59 | +from pathlib import Path |
| 60 | +import tomllib |
| 61 | +data = tomllib.loads(Path("pyproject.toml").read_text()) |
| 62 | +print(data["tool"]["poetry"]["version"].lstrip("v")) |
| 63 | +PY |
| 64 | +)" |
| 65 | + COMPAT_VERSION="$(python - <<'PY' |
| 66 | +from pathlib import Path |
| 67 | +import tomllib |
| 68 | +data = tomllib.loads(Path("compat/agora-agent-server-sdk/pyproject.toml").read_text()) |
| 69 | +print(data["tool"]["poetry"]["version"].lstrip("v")) |
| 70 | +PY |
| 71 | +)" |
| 72 | + COMPAT_DEP_VERSION="$(python - <<'PY' |
| 73 | +from pathlib import Path |
| 74 | +import tomllib |
| 75 | +data = tomllib.loads(Path("compat/agora-agent-server-sdk/pyproject.toml").read_text()) |
| 76 | +print(data["tool"]["poetry"]["dependencies"]["agora-agents"]) |
| 77 | +PY |
| 78 | +)" |
| 79 | + |
| 80 | + if [ "$ROOT_VERSION" != "$TAG_VERSION" ]; then |
| 81 | + echo "Root package version ($ROOT_VERSION) does not match tag version ($TAG_VERSION)." |
| 82 | + exit 1 |
| 83 | + fi |
| 84 | + |
| 85 | + if [ "$COMPAT_VERSION" != "$TAG_VERSION" ]; then |
| 86 | + echo "Compat package version ($COMPAT_VERSION) does not match tag version ($TAG_VERSION)." |
| 87 | + exit 1 |
| 88 | + fi |
| 89 | + |
| 90 | + if [ "$COMPAT_DEP_VERSION" != ">=${TAG_VERSION},<3.0.0" ]; then |
| 91 | + echo "Compat package dependency on agora-agents ($COMPAT_DEP_VERSION) does not match >=${TAG_VERSION},<3.0.0." |
| 92 | + exit 1 |
| 93 | + fi |
| 94 | + |
| 95 | + - name: Publish primary package to pypi |
| 96 | + run: | |
| 97 | + poetry config repositories.remote https://upload.pypi.org/legacy/ |
| 98 | + poetry --no-interaction -v publish --build --repository remote --username "$PYPI_USERNAME" --password "$PYPI_PASSWORD" |
| 99 | + env: |
| 100 | + PYPI_USERNAME: ${{ secrets.PYPI_USERNAME }} |
| 101 | + PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }} |
| 102 | + |
| 103 | + - name: Publish compatibility package to pypi |
55 | 104 | run: | |
| 105 | + cd compat/agora-agent-server-sdk |
56 | 106 | poetry config repositories.remote https://upload.pypi.org/legacy/ |
57 | 107 | poetry --no-interaction -v publish --build --repository remote --username "$PYPI_USERNAME" --password "$PYPI_PASSWORD" |
58 | 108 | env: |
|
0 commit comments