Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


This is an ember-cli-deploy plugin for deploying your built application to a git branch. It's particularly handy for deploying to GitHub Pages.

If you have a recent version of git that supports git worktree, and you're deploying to the same repo you're working in, we automatically use git worktree to avoid any extra cloning.


ember install ember-cli-deploy ember-cli-deploy-build ember-cli-deploy-git


In config/deploy.js, (which ember-cli-deploy will helpfully generate for you), you can pass the following options:

  • branch: The branch that we will deploy to. It must already exist. Defaults to "gh-pages"
  • repo: The repo that we will deploy to. It defaults to the value of your containing repo's origin remote.
  • worktreePath: Path where we will create/update a working tree to manipulate the deployment branch. Defaults to ../deploy-${}, relative to your project.
  • destDir: A directory within the given branch that we will deploy to. Defaults to the root of the repo.
  • commitMessage: Message to use when committing the deployment, where %@ is replaced with the current git revision.

A complete example:

ENV.git = {
  repo: '',
  branch: 'deploys',
  worktreePath: '/tmp/ef4-deploy',
  commitMessage: 'Deployed %@'


Github Pages First-Time Setup

  1. Make sure the branch named gh-pages exists. If it doesn't, you can do git checkout --orphan gh-pages; git commit --allow-empty; git push -u origin gh-pages.

  2. Configure your application to run correctly in the Github environment by setting these things in your config/environment.js:

if (environment === 'production') {
  ENV.rootURL = '/your-repo-name';
  ENV.locationType = 'hash';
  1. Add demoURL to your package.json's ember-addon section to be picked up by and
"ember-addon": {
  "configPath": "tests/dummy/config",
  "demoURL": ""

If you're using Ember-CLI 2.6 or older, you will need to use baseURL instead of rootURL.

Coordination With Other Plugins

This plugin checks out the target branch during the prepare phase of the deploy, and writes the new build output there during the upload phase. Between those two phases, the location of this checkout is available at context.gitDeploy.worktreePath for other plugins that wish to pull information from the previous deployed commit.

How to Deploy

ember deploy production


ember-cli-deploy plugin for uploading your built app to Git.







No packages published