Ibis support in ui.dataframe should output python code #141
This file contains 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: marimo bot | |
on: | |
issue_comment: | |
types: [created] | |
env: | |
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} | |
TURBO_TEAM: marimo | |
jobs: | |
# Various jobs that can be triggered by comments | |
create-test-release: | |
if: contains(github.event.comment.body, '/marimo create-test-release') && github.event.issue.pull_request | |
name: 📤 Publish test release | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: 🛑 Cancel Previous Runs | |
uses: styfle/[email protected] | |
- name: ⬇️ Checkout repo | |
uses: actions/checkout@v4 | |
with: | |
# get tag history for version number | |
fetch-depth: 0 | |
- name: 📝 Initial Comment on PR | |
uses: actions/github-script@v7 | |
id: comment | |
with: | |
script: | | |
const comment = await github.rest.issues.createComment({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
issue_number: context.issue.number, | |
body: '🚀 Starting test release process...' | |
}); | |
console.log(`Comment created with ID: ${comment.data.id}`); | |
return comment.data.id; | |
- uses: pnpm/action-setup@v2 | |
with: | |
version: 8 | |
- name: ⎔ Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
cache: 'pnpm' | |
cache-dependency-path: '**/pnpm-lock.yaml' | |
registry-url: 'https://registry.npmjs.org' | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
- name: 📦 Build frontend | |
run: make fe | |
- name: 🐍 Setup Python 3.10 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.10' | |
cache: 'pip' | |
- name: 🐍 Setup uv | |
uses: yezz123/setup-uv@v4 | |
with: | |
uv-venv: marimo-venv | |
# patch __init__.py version to be of the form | |
# X.Y.Z-dev9{4random digits} | |
# This must be a valid semver version from | |
# https://packaging.python.org/en/latest/discussions/versioning/ | |
- name: 🔨 Patch version number | |
run: | | |
# Get the version number | |
# - assumes version is on a line of the form __version__ == "x.y.z" | |
current_version=`grep '__version__' marimo/__init__.py | awk '{print $3}' | tr -d '"'` | |
# Generate a random 4-digit number | |
random_digits=`shuf -i 1000-9999 -n 1` | |
# Form the new version with the random digits | |
MARIMO_VERSION="${current_version}-dev9${random_digits}" | |
# Set the version in the environment for later steps | |
echo "MARIMO_VERSION=$MARIMO_VERSION" >> $GITHUB_ENV | |
sed -i "s/__version__ = \".*\"/__version__ = \"$MARIMO_VERSION\"/" marimo/__init__.py | |
- name: 📦 Build marimo | |
run: | | |
uv pip install build twine | |
uv pip install . | |
python -m build | |
- name: 📤 Upload to TestPyPI | |
env: | |
TWINE_USERNAME: ${{ secrets.TEST_PYPI_USER }} | |
TWINE_PASSWORD: ${{ secrets.TEST_PYPI_PASSWORD }} | |
run: twine upload --repository testpypi --skip-existing dist/* | |
- name: 📦 Update package.json version from CLI | |
working-directory: frontend | |
run: | | |
echo "Updating package.json version to ${{ env.MARIMO_VERSION }}" | |
npm version ${{ env.MARIMO_VERSION }} --no-git-tag-version | |
- name: 📤 Upload wasm to npm | |
working-directory: frontend | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
run: npm publish --access public | |
- name: 📝 Update PR Comment | |
uses: actions/github-script@v7 | |
continue-on-error: true | |
with: | |
script: | | |
try { | |
const commentId = ${{steps.comment.outputs.result}} | |
console.log(`Updating comment with ID: ${commentId}`); | |
await github.rest.issues.updateComment({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
comment_id: commentId, | |
body: `🚀 Test release published. You may be able to view the changes at https://marimo.app?v=${process.env.MARIMO_VERSION}` | |
}); | |
} catch (err) { | |
console.error(err); | |
} | |
- name: 📝 Update PR Comment on Failure | |
if: failure() | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
try { | |
const commentId = ${{steps.comment.outputs.result}} | |
console.log(`Updating comment with ID: ${commentId}`); | |
await github.rest.issues.updateComment({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
comment_id: commentId, | |
body: `❌ Test release failed. Please check the workflow logs for more details.` | |
}); | |
} catch (err) { | |
console.error(err); | |
} |