Firebase Deployment

This page documents deployments using dpl v1 which currently is the default version. The next major version dpl v2 will be released soon, and we recommend starting to use it. Please see our blog post for details. dpl v2 documentation can be found here.

Travis CI can automatically deploy your application to Firebase after a successful build.

To use the default configuration, add your encrypted Firebase token to your .travis.yml, all other information is read from your firebase.json:

deploy:
  provider: firebase
  token:
    secure: "YOUR ENCRYPTED token"

Generating your Firebase token #

Generate your Firebase token after installing the Firebase tools by running:

# This generates a token, e.g. "1/AD7sdasdasdKJA824OvEFc1c89Xz2ilBlaBlaBla"
firebase login:ci
# Encrypt this token
travis encrypt "1/AD7sdasdasdKJA824OvEFc1c89Xz2ilBlaBlaBla" --add
# This command may generate a warning ("If you tried to pass the name of the repository as the first argument, you probably won't get the results you wanted"). You can ignore it.

When using travis encrypt --add you are likely to receive WARNING: The name of the repository is now passed to the command with the -r option (see https://github.com/travis-ci/travis-ci/issues/7869). The token will be added to your .travis.yml, regardless. Inspect and move the token to the secure: section of your .travis.yml if it isn’t added there.

Remember to encrypt the token before adding it to your .travis.yml

Deploying to a custom project #

To deploy to a different project than the one specified in the firebase.json, use the project key in your .travis.yml:

deploy:
  provider: firebase
  token:
    secure: "YOUR ENCRYPTED token"
  project: "myapp-staging"

Adding a message to a deployment #

To add a message to describe the deployment, use the message key in your .travis.yml:

deploy:
  provider: firebase
  token:
    secure: "YOUR ENCRYPTED token"
  message: "your message"

Running commands before and after deploy #

Sometimes you want to run commands before or after deploying. You can use the before_deploy and after_deploy stages for this. These will only be triggered if Travis CI is actually deploying.

before_deploy: "echo 'ready?'"
deploy:
  ..
after_deploy:
  - ./after_deploy_1.sh
  - ./after_deploy_2.sh