tenderly actions publish to upload Actions to the dashboard without activating them, or tenderly actions deploy to both publish and deploy Actions with active triggers.
Commands
tenderly actions build
tenderly actions publish
tenderly actions deploy
What These Commands Do
All three commands follow a similar workflow:Authenticate & Select Project
Verifies authentication and selects the project (or uses
--project flag)Build Process
TypeScript Projects
For TypeScript Actions, the build process:- Installs Dependencies: Runs
npm installin the sources directory - Compiles TypeScript: Executes
npm run build(runstsccompiler) - Validates Output: Checks that compiled
.jsfiles exist in theoutDir
Your
tsconfig.json must specify compilerOptions.outDir. The CLI validates that all functions compile to this directory.JavaScript Projects
JavaScript projects don’t require compilation. The CLI directly validates and packages.js files.
Validation
Trigger Validation
The CLI validates all trigger configurations before publishing:- Block Trigger
- Transaction Trigger
- Periodic Trigger
- Webhook Trigger
- Alert Trigger
networkmust be a supported network IDblocksmust be greater than 0
Execution Type Validation
Theexecution_type field must be either parallel or sequential:
- Multiple instances can run simultaneously
- Better for high-frequency triggers
- No execution order guarantee
- Only one instance runs at a time
- Subsequent triggers queue up
- Guaranteed execution order
If
execution_type is omitted, it defaults to parallel.Function Validation
The CLI validates that:- Function locator format is correct:
filename:functionName - The file exists in the sources directory (with
.tsor.jsextension) - For TypeScript: compiled
.jsfile exists inoutDir
Dependency Validation
Ifpackage.json exists, the CLI validates:
- Required packages are installed
- Package versions are compatible with the runtime
- No conflicting dependencies
Package Size Limits
The CLI enforces a 45 MB limit for packaged Actions:- Logic (source code): Maximum 45 MB
- Dependencies (
node_modules): Maximum 45 MB
- Removing unused dependencies
- Using lighter-weight alternatives
- Excluding development dependencies from production builds
Incremental Uploads
The CLI uses content hashing to avoid re-uploading unchanged files:- Logic hash: Hash of compiled source code
- Dependencies hash: Hash of
node_modules
Examples
Build and Validate Locally
Publish Without Deploying
Deploy to Production
Specify Project
Dashboard URLs
After publishing or deploying, the CLI outputs dashboard URLs for each Action:- View Action execution logs
- Monitor trigger events
- Edit Action configuration
- Pause or resume Actions
Common Errors
Missing TypeScript Config
tsconfig.json with compilerOptions.outDir set:
Compiled Files Not Found
- TypeScript compilation succeeds:
npm run build - The
outDirmatches yourtsconfig.json - All imported files are in the sources directory
Invalid Execution Type
sequential or parallel in your action spec:
Invalid Trigger Configuration
tenderly.yaml:
Function Not Found
- The file exists in the sources directory
- The function is exported
- The locator format is correct:
filename:functionName
Global Flags
Build vs Publish vs Deploy
| Command | Validates | Compiles | Uploads | Activates Triggers |
|---|---|---|---|---|
build | ✓ | ✓ | ✗ | ✗ |
publish | ✓ | ✓ | ✓ | ✗ |
deploy | ✓ | ✓ | ✓ | ✓ |
build: Local development and testingpublish: Upload new versions without activating themdeploy: Full deployment to production
Version Control with Git
The CLI includes Git commit information when publishing Actions:Next Steps
Actions Overview
Learn about trigger types and execution modes
Initialize Actions
Set up a new Actions project