frameworks/motia/contributors/architecture/deploy/DEPLOY_FLOW.md
This document describes the complete automated deploy flow for the Motia framework.
The deploy flow is divided into 3 main stages:
deploy.yml)e2e-tests.yml)finalize-release.yml) or Rollback (rollback-release.yml)git tag v1.0.0
git push origin v1.0.0
Trigger: Push of tag v*
Actions:
pre-release tagPublished packages:
@motiadev/core@version (tag: pre-release)@motiadev/workbench@version (tag: pre-release)@motiadev/stream-client-browser@version (tag: pre-release)@motiadev/stream-client-react@version (tag: pre-release)motia@version (tag: pre-release)@motiadev/test@version (tag: pre-release)Trigger: Triggered by deploy.yml
Actions:
Scenarios:
finalize-release.ymlrollback-release.ymlTrigger: E2E tests passed
Actions:
latest tagpre-release tagTrigger: E2E tests failed
Actions:
📁 .github/workflows/
├── deploy.yml # Main workflow
├── e2e-tests.yml # End-to-end tests
├── finalize-release.yml # Release finalization
├── rollback-release.yml # Rollback in case of failure
├── motia.yml # CI/CD (quality checks)
└── wip-release.yml # Manual WIP releases
pre-release: Version under testlatest: Stable version (after tests)# During E2E tests
npm install [email protected] --tag pre-release
# After successful tests
npm install [email protected] # latest tag (default)
latest# List recent workflows
gh run list
# View workflow details
gh run view <run-id>
# Download test artifacts
gh run download <run-id>
# View available tags
npm view motia dist-tags
# View published versions
npm view motia versions --json
# List releases
gh release list
# View release details
gh release view v1.0.0
# Remove packages manually
npm unpublish [email protected] --force
# Remove Git tag
git push --delete origin v1.0.0
git tag -d v1.0.0
# Create new tag
git tag v1.0.1
git push origin v1.0.1
MOTIA_CI_APP_ID: App ID for authenticationMOTIA_CI_APP_PRIVATE_KEY: App private keyNPM_TOKEN: Token for NPM publishingcontents: write: For tags and releasespackages: write: For NPM publishingactions: write: For triggering workflowsissues: write: For creating failure issuese2e-tests.yml workflowcd packages/e2e
pnpm test:e2e