Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .github/workflows/publish-cli.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
push:
branches: [main]
paths:
- 'packages/simstudio/**'
- 'packages/cli/**'

jobs:
publish-npm:
Expand All @@ -25,16 +25,16 @@ jobs:
registry-url: 'https://registry.npmjs.org/'

- name: Install dependencies
working-directory: packages/simstudio
working-directory: packages/cli
run: bun install

- name: Build package
working-directory: packages/simstudio
working-directory: packages/cli
run: bun run build

- name: Get package version
id: package_version
working-directory: packages/simstudio
working-directory: packages/cli
run: echo "version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT

- name: Check if version already exists
Expand All @@ -48,7 +48,7 @@ jobs:

- name: Publish to npm
if: steps.version_check.outputs.exists == 'false'
working-directory: packages/simstudio
working-directory: packages/cli
run: npm publish --access=public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
Expand Down
89 changes: 89 additions & 0 deletions .github/workflows/publish-python-sdk.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
name: Publish Python SDK

on:
push:
branches: [main]
paths:
- 'packages/python-sdk/**'

jobs:
publish-pypi:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
cache: 'pip'

- name: Install build dependencies
run: |
python -m pip install --upgrade pip
pip install build twine pytest requests tomli

- name: Run tests
working-directory: packages/python-sdk
run: |
PYTHONPATH=. pytest tests/ -v

- name: Get package version
id: package_version
working-directory: packages/python-sdk
run: echo "version=$(python -c "import tomli; print(tomli.load(open('pyproject.toml', 'rb'))['project']['version'])")" >> $GITHUB_OUTPUT

- name: Check if version already exists
id: version_check
run: |
if pip index versions simstudio-sdk | grep -q "${{ steps.package_version.outputs.version }}"; then
echo "exists=true" >> $GITHUB_OUTPUT
else
echo "exists=false" >> $GITHUB_OUTPUT
fi

- name: Build package
if: steps.version_check.outputs.exists == 'false'
working-directory: packages/python-sdk
run: python -m build

- name: Check package
if: steps.version_check.outputs.exists == 'false'
working-directory: packages/python-sdk
run: twine check dist/*

- name: Publish to PyPI
if: steps.version_check.outputs.exists == 'false'
working-directory: packages/python-sdk
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
run: twine upload dist/*

- name: Log skipped publish
if: steps.version_check.outputs.exists == 'true'
run: echo "Skipped publishing because version ${{ steps.package_version.outputs.version }} already exists on PyPI"

- name: Create GitHub Release
if: steps.version_check.outputs.exists == 'false'
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: python-sdk-v${{ steps.package_version.outputs.version }}
name: Python SDK v${{ steps.package_version.outputs.version }}
body: |
## Python SDK v${{ steps.package_version.outputs.version }}

Published simstudio-sdk==${{ steps.package_version.outputs.version }} to PyPI.

### Installation
```bash
pip install simstudio-sdk==${{ steps.package_version.outputs.version }}
```

### Documentation
See the [README](https://github.com/simstudio/sim/tree/main/packages/python-sdk) for usage instructions.
draft: false
prerelease: false
85 changes: 85 additions & 0 deletions .github/workflows/publish-ts-sdk.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
name: Publish TypeScript SDK

on:
push:
branches: [main]
paths:
- 'packages/ts-sdk/**'

jobs:
publish-npm:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest

- name: Setup Node.js for npm publishing
uses: actions/setup-node@v4
with:
node-version: '18'
registry-url: 'https://registry.npmjs.org/'

- name: Install dependencies
working-directory: packages/ts-sdk
run: bun install

- name: Run tests
working-directory: packages/ts-sdk
run: bun run test

- name: Build package
working-directory: packages/ts-sdk
run: bun run build

- name: Get package version
id: package_version
working-directory: packages/ts-sdk
run: echo "version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT

- name: Check if version already exists
id: version_check
run: |
if npm view simstudio-ts-sdk@${{ steps.package_version.outputs.version }} version &> /dev/null; then
echo "exists=true" >> $GITHUB_OUTPUT
else
echo "exists=false" >> $GITHUB_OUTPUT
fi

- name: Publish to npm
if: steps.version_check.outputs.exists == 'false'
working-directory: packages/ts-sdk
run: npm publish --access=public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

- name: Log skipped publish
if: steps.version_check.outputs.exists == 'true'
run: echo "Skipped publishing because version ${{ steps.package_version.outputs.version }} already exists on npm"

- name: Create GitHub Release
if: steps.version_check.outputs.exists == 'false'
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: typescript-sdk-v${{ steps.package_version.outputs.version }}
name: TypeScript SDK v${{ steps.package_version.outputs.version }}
body: |
## TypeScript SDK v${{ steps.package_version.outputs.version }}

Published simstudio-ts-sdk@${{ steps.package_version.outputs.version }} to npm.

### Installation
```bash
npm install simstudio-ts-sdk@${{ steps.package_version.outputs.version }}
```

### Documentation
See the [README](https://github.com/simstudio/sim/tree/main/packages/ts-sdk) for usage instructions.
draft: false
prerelease: false
5 changes: 4 additions & 1 deletion apps/docs/content/docs/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,10 @@
"---Execution---",
"execution",
"---Advanced---",
"./variables/index"
"./variables/index",
"---SDKs---",
"./sdks/python",
"./sdks/typescript"
],
"defaultOpen": true
}
Loading