How It Works
When you connect a GitHub repository to your Shuttle project, we establish a direct link between your codebase and your deployment pipeline.Features
- Deploy Your Own Repository: Connect your existing GitHub repository to Shuttle, configure your secrets, and deploy your application from Shuttle dashboard
- Automatic Deployments on Git Push: Enable automatic deployments so that pushing code to your selected branch triggers an immediate rebuild and redeployment
- Deploy Templates: Choose from our pre-configured GitHub templates and deploy them instantly to get started quickly - no CLI installation required
- Deploy From Dashboard: Deploy any branch from your repository directly using the “Deploy” button in the console dashboard
Use-cases and limitations
If your project relies on gitignored assets that are needed when runningshuttle deploy
, you can instead use our GitHub Deploy Action, and build/configure these assets prior to deployment.Shuttle’s automatic deployments from GitHub are designed for projects where the codebase is fully ready to deploy with shuttle deploy
after checkout.Which Should I Use?
Your Project | Use This |
---|---|
Pure Rust backend (Axum, Actix, Rocket) | GitHub Integration |
Rust + pre-built static files committed to git | GitHub Integration |
Rust + React/Vue build step | GitHub Actions |
Rust + Asset compilation (SCSS, Tailwind) | GitHub Actions |
Rust + Code generation before deploy | GitHub Actions |
Connecting Your GitHub Account
To integrate GitHub with your Shuttle project, follow these steps:- Navigate to the Integrations page in Shuttle Console.
- Click “Connect to GitHub” to authorise Shuttle to access your selected repositories.
- GitHub will prompt you to provide access.
Deploying a GitHub Repository
- Navigate to new project and select “GitHub Repository”.
- Once authorised, select the repository you want to deploy.
- Confirm the repository is configured to run on Shuttle. See the migration docs for guidance.
- Select the branch and add secrets if required.
- Confirm deployment and your project will be deployed to Shuttle 🚀
Connecting a GitHub Repository to an Existing Project
- Navigate to project settings of your desired project.
- Once authorised, select the repository you want to connect to this Shuttle project.
- After selecting your repository, confirm the connection. Your Shuttle project is now linked to your GitHub repository.
Automatic Deployments
Once you’ve connected a GitHub repository to your Shuttle project, you can push to GitHub and Shuttle will automatically pull the latest code from your connected repository, build it, and deploy the updated application.- Navigate to project settings and ensure a GitHub repository is connected.
- Enable Automatic Deployments
- Select and confirm branch.
- Push to GitHub and a deployment will automatically begin.
Deploying a GitHub Template
Deploying a template sets up both the Shuttle project and a new GitHub repository in your connected GitHub account. You get a fully functional application deployed on Shuttle with the complete source code in your GitHub account.- Navigate to Shuttle Console and select “Template”.
- Select desired template.
- Choose “Deploy from GitHub” development flow and authorise if required.
- Select which GitHub account you would like the template to be generated to and name repository.
- If required, add secrets and deploy.
Permissions for Growth Tier
Team members on a Growth plan have view access to GitHub integration settings but cannot modify them.- Team members are unable to connect a repository, disconnect or change a linked repository.
- Both account owners and team members can enable automatic deployments and deploy a connected repository.