Overview
This guide walks you through migrating your dbt™ jobs from GitHub Actions to Paradime’s Bolt orchestration platform. Paradime offers a purpose-built solution for dbt™ orchestration with features like deferred runs, smart scheduling, and integrated monitoring.Part 1: Understanding Your Current GitHub Actions Setup
Example GitHub Actions Workflow Here’s a typical GitHub Actions workflow for running dbt™ jobs:- Triggers on a daily schedule, manual dispatch, or push to main
- Installs dbt™ and dependencies
- Runs dbt™ seed, run, and test commands
- Uses GitHub Secrets for warehouse credentials
- Notifies on failure (basic)
Part 2: Prerequisites for Paradime Migration
Before migrating, ensure you have: 1. Paradime Workspace Setup- Active Paradime account
- Workspace created and configured
- Access to the Bolt application
- Production connection configured in Paradime
- This connection should have the same permissions as your GitHub Actions credentials
- Navigate to: Settings → Connections to set this up
- Your dbt™ project repository connected to Paradime
- Git credentials configured
- Navigate to: Settings → Git Integration
- Paradime GitHub App installed in your GitHub organization
- This enables native Turbo CI and Continuous Deployment without manual GitHub Actions
- Installation Guide: docs.paradime.io/app-help/documentation/integrations/ci-cd/github
- Your dbt™ project accessible in Paradime IDE
- Models materialized and tested in development
Part 3: Creating Your First Paradime Schedule
Method 1: Using the Bolt UI (Recommended for Beginners)
Step 1: Access Bolt- Log into your Paradime workspace
- Navigate to Bolt from the left sidebar
- Click Create Schedule
- Type: Choose Standard (equivalent to a basic GitHub Actions job)
- Name:
daily_production_run(descriptive name for your schedule) - Git Branch:
main(or your production branch) - Owner Email: Your email address
Pro Tip: Each command runs sequentially. If one fails, subsequent commands won’t execute.
- Scheduled Run: For time-based execution (like cron)
- Choose Cron Schedule:
0 6 * * *(daily at 6 AM UTC) - Or use presets like
@daily,@hourly,@weekly
- Choose Cron Schedule:
- On Merge: Trigger when PR is merged to specified branch
- On Run Completion: Chain jobs together
- Slack Notifications:
- Toggle Slack Notify On: Select
failedand/orpassed - Enter channel:
#data-team-alerts
- Toggle Slack Notify On: Select
- Email Notifications:
- Toggle Email Notify On: Select
failedand/orpassed - Enter email addresses
- Toggle Email Notify On: Select
Method 2: Using Schedules as Code (YAML)
For teams that prefer infrastructure-as-code, Paradime supports YAML-based schedules. Step 1: Createparadime_schedules.yml
In your dbt™ project root, create or edit paradime_schedules.yml:
Part 4: Migration Mapping Guide
Here’s how GitHub Actions concepts map to Paradime Bolt:Part 5: Advanced Features in Paradime
Native GitHub Integration Benefits With the Paradime GitHub App installed, you get:- Automatic PR checks: Turbo CI runs automatically on every pull request
- Merge triggers: Deploy changes instantly when PRs are merged
- Lineage Diff comments: Automated comments showing downstream impact on Looker, Tableau, ThoughtSpot, and dbt™ mesh
- No GitHub Actions needed: Paradime handles triggering and status reporting
- Centralized logs: All CI/CD runs visible in Bolt dashboard
Deferred Runs (Optimization)
Paradime offers Deferred Schedules that only run changed models:- Faster execution (only modified models)
- Lower compute costs
- Smart state comparison
Turbo CI for Pull Requests
🎉 Paradime supports native GitHub integration for Turbo CI! No need to write GitHub Actions workflows manually. Option 1: Native GitHub App Integration (Recommended) The easiest way to enable Turbo CI is through Paradime’s native GitHub app, which automatically triggers CI checks when you open a pull request. Setup Steps:-
Install the Paradime GitHub App:
- Navigate to Settings > Integrations in Paradime
- Click Connect next to GitHub Integration
- Follow the authentication flow and select your repositories
- Click Install and authorize
- Complete the user-level OAuth by going to Profile > Profile Settings
-
Create a Turbo CI Schedule in Bolt:
-
That’s it! When you open a pull request, Paradime will automatically:
- Trigger the Turbo CI schedule
- Build modified models in a temporary schema (
paradime_turbo_ci_pr_<commit_sha>) - Run tests on changed models
- Post status checks directly to your PR
Continuous Deployment on Merge
🎉 Paradime supports native GitHub integration for Continuous Deployment! Automatically deploy when PRs are merged. Option 1: Native GitHub App Integration (Recommended) With the Paradime GitHub app installed (see Turbo CI setup above), you can enable automatic deployments on merge without any GitHub Actions configuration. Setup in Bolt UI:- Create or edit a schedule in Bolt
- Set Schedule Type to Deferred
- Enable Trigger on Merge
- Select your production branch (e.g.,
main) - Configure your commands:
- When a PR is merged to your production branch, Paradime automatically triggers the schedule
- Only modified models are deployed (using state comparison)
- Status updates are posted to Slack
- No GitHub Actions workflow needed!
Part 6: Step-by-Step Migration Process
Phase 1: Parallel Run (Week 1)- Keep GitHub Actions running as-is
- Create equivalent schedules in Paradime Bolt
- Monitor both for consistency
- Compare results and timing
- Verify all jobs run successfully in Paradime
- Test notifications (Slack/email)
- Check monitoring and logs
- Validate data quality remains consistent
- Disable GitHub Actions schedules (comment out cron)
- Keep GitHub Actions files for emergency fallback
- Monitor Paradime closely for first few days
- Update documentation and runbooks
- Archive GitHub Actions workflows
- Update team documentation
- Train team on Bolt interface
- Optimize schedules using deferred runs
Part 7: Troubleshooting Common Issues
Issue 1: Schedule Not Running Check:- Schedule is not paused (look for pause icon)
- Cron syntax is correct
- Branch exists and is accessible
- Production connection is active
- Connection credentials are valid
- Target profile exists in
profiles.yml - Models exist in specified branch
- Check logs in Bolt → Run History
- Slack workspace is connected (Settings → Integrations)
- Channel names are correct (include
#) - Email addresses are valid
- Notification toggles are enabled
- Git credentials are valid
- Branch exists
- Repository is accessible
- Try manual sync in Settings
Part 8: Best Practices
1. Naming Conventions Use descriptive, consistent names:- ✅
daily_full_refresh - ✅
hourly_incremental_models - ❌
schedule1 - ❌
test
- Deferred runs for optimization
- Turbo CI for PR validation
- On Run Completion for dependencies
- Set up Slack notifications for all production jobs
- Review Run History weekly
- Check SLA compliance in analytics
- Keep
paradime_schedules.ymlin git - Review changes in PRs
- Document major changes
- Identify frequently-modified models
- Create deferred schedules for efficiency
- Monitor compute savings
Part 9: Quick Reference
Common Cron SchedulesConclusion
Migrating from GitHub Actions to Paradime Bolt offers:- Simplified management: No infrastructure to maintain
- Better observability: Built-in monitoring and analytics
- Cost optimization: Deferred runs and smart scheduling
- Native dbt™ integration: Purpose-built for dbt™ workflows
- Team collaboration: Centralized scheduling and monitoring
Questions or Issues?
- Check the Paradime Help Center
- Review the Bolt Documentation
- Contact Paradime support for assistance