Skip to content

fix: map geoarrow to geoarrow-types #17428

fix: map geoarrow to geoarrow-types

fix: map geoarrow to geoarrow-types #17428

Workflow file for this run

name: marimo bot
on:
issue_comment:
types: [created]
concurrency:
group: ${{ github.workflow }}-${{ github.event.issue.number }}
cancel-in-progress: true
permissions:
contents: read
pull-requests: write
env:
TURBO_TEAM: marimo
UV_EXCLUDE_NEWER: "7 days"
jobs:
# Various jobs that can be triggered by comments
create-test-release:
# NB: only the commenter's association is checked. The PR author's
# association says nothing about who is invoking this command.
if: >
(
github.event.comment.author_association == 'OWNER' ||
github.event.comment.author_association == 'COLLABORATOR' ||
github.event.comment.author_association == 'MEMBER'
) &&
github.event.issue.pull_request &&
contains(github.event.comment.body, '/marimo create-test-release')
name: 📦 Build test release
runs-on: ubuntu-latest
# NB: no `environment:` or secrets/OIDC — this job runs PR-controlled
# build hooks (frontend build, pyproject patch, `uv build`).
permissions:
contents: read
pull-requests: write
defaults:
run:
shell: bash
outputs:
marimo_version: ${{ steps.get_version.outputs.marimo_version }}
comment_id: ${{ steps.comment.outputs.result }}
steps:
- name: 📝 Get PR Info
id: pr
env:
PR_NUMBER: ${{ github.event.issue.number }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_REPO: ${{ github.repository }}
COMMENT_AT: ${{ github.event.comment.created_at }}
run: |
pr="$(gh api /repos/${GH_REPO}/pulls/${PR_NUMBER})"
head_sha="$(echo "$pr" | jq -r .head.sha)"
pushed_at="$(echo "$pr" | jq -r .head.repo.pushed_at)"
# NB mitigate potential race condition.
if [[ $(date -d "$pushed_at" +%s) -gt $(date -d "$COMMENT_AT" +%s) ]]; then
echo "Updating is not allowed because the PR was pushed to (at $pushed_at) after the triggering comment was issued (at $COMMENT_AT)"
exit 1
fi
echo "head_sha=$head_sha" >> $GITHUB_OUTPUT
- name: ⬇️ Checkout repo
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
fetch-depth: 0
ref: ${{ steps.pr.outputs.head_sha }}
- name: 📝 Initial Comment on PR
uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # 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;
- name: 📦 Build frontend
# NB: no turbo-token — this step runs PR-controlled build hooks.
uses: ./.github/actions/build-frontend
- name: Install uv
uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7
- name: Adapt pyproject.toml to build marimo-base
run: uv run ./scripts/modify_pyproject_for_marimo_base.py
# patch pyproject.toml 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
id: get_version
run: |
# Get the version number
current_version=`uv version --short`
# 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
echo "marimo_version=$MARIMO_VERSION" >> $GITHUB_OUTPUT
uv version "$MARIMO_VERSION"
env:
NO_COLOR: 1
- name: 📦 Build marimo
run: uv build
- name: 📦 Validate wheel under 2mb
run: ./scripts/validate_base_wheel_size.sh
- name: 📦 Upload wheel artifact for TestPyPI publish
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
with:
name: wheel-test-release
path: dist/
retention-days: 1
- 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 frontend artifact for npm publish
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
with:
name: frontend-test-branch
path: frontend/
retention-days: 1
publish-test-release:
name: 📤 Publish dist to TestPyPI
needs: create-test-release
runs-on: ubuntu-latest
environment: testpypi
# NB: no repo checkout — only the pre-built artifact is published.
permissions:
contents: read
id-token: write
steps:
- name: ⬇️ Download dist artifact
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: wheel-test-release
path: dist/
- name: 📤 Upload to TestPyPI
uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # release/v1
with:
verbose: true
repository-url: https://test.pypi.org/legacy/
publish_wasm_test:
name: 📤 Publish @marimo-team/frontend to npm
needs: create-test-release
uses: ./.github/workflows/publish-npm.yml
with:
package-artifact-name: frontend-test-branch
working-directory: '.'
npm-tag: 'dev'
permissions:
id-token: write # Required for OIDC
contents: read
update_pr_comment:
name: 📝 Update PR Comment
needs: [create-test-release, publish-test-release, publish_wasm_test]
runs-on: ubuntu-latest
if: always()
steps:
- name: ⬇️ Checkout repo
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- name: 📝 Update PR Comment on Success
if: needs.publish-test-release.result == 'success' && needs.publish_wasm_test.result == 'success'
uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7
continue-on-error: true
env:
MARIMO_VERSION: ${{ needs.create-test-release.outputs.marimo_version }}
COMMENT_ID: ${{ needs.create-test-release.outputs.comment_id }}
with:
script: |
try {
const commentId = parseInt(process.env.COMMENT_ID, 10);
const marimoVersion = process.env.MARIMO_VERSION || 'unknown';
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=${encodeURIComponent(marimoVersion)}`
});
} catch (err) {
console.error(err);
}
- name: 📝 Update PR Comment on Failure
if: needs.create-test-release.result == 'failure' || needs.publish-test-release.result == 'failure' || needs.publish_wasm_test.result == 'failure'
uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7
continue-on-error: true
env:
COMMENT_ID: ${{ needs.create-test-release.outputs.comment_id }}
with:
script: |
try {
const commentId = parseInt(process.env.COMMENT_ID, 10);
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);
}