Integração Contínua com o Travis e Firebase

November 13, 2018 | firebase | travis |

Como publicar seu app JS no Firebase usando a ferramenta de Integração Contínua Travis CI

  • Obs. 1: Estou considerando que o app está no GitHub e no Firebase. Aqui é apenas para colocar na Integração Contínua.
  • Obs. 2: Caso o app não esteja no Firebase ainda, primeiro siga os passos deste artigo.

Vamos lá!

  • No browser, acesse travis-ci.org e logue-se nele através de sua conta do GitHub.

  • Na página de repositórios procure pelo repo que deseja ter a integração contínua e ative-o. Depois clique no nome dele para ir para a página de builds. A URL é https://travis-ci.org/username/repositorio

  • Na raiz do projeto, crie o arquivo travis.yml e cole o conteúdo abaixo (explicação sobre esse arquivo no final do post):

language: node_js
node_js:
  - "lts/*"
cache:
  directories:
  - node_modules
script:
  - npm run build
deploy:
  provider: firebase
  token:
    secure: "<um token gerado>"
  message: "deploy via Travis CI"
  skip_cleanup: true
  local_dir: build
  on:
    branch: master
  • Agora vamos gerar um token. Na linha comando, rode:

    firebase login:ci

Waiting for authentication...

✔  Success! Use this token to login on a CI server:

1/aw8HV5QoNRAVejOchCujq4-VbFd4GnOVru207mLQEkNXMnzjVd05U3aYxuKZFlN
  • Pegue o token que acabou de gerar e susbtitua o travis.yml pelo trecho em:
deploy:
    token:
        secure: "1/aw8HV5QoNRAVejOchCujq4-VbFd4GnOVru207mLQEkNXMnzjVd05U3aYxuKZFlN"
  • Dê o git push do travis.yml.

  • Pronto! O próximo git push que der nos arquivos HTML/CSS/JS, o Travis CI vai gerar uma nova build e fazer o deploy no Firebase automaticamente.

  • Acompanhe a build em tempo real em https://travis-ci.org/username/repositorio

Explicação sobre o arquivo travis.yml

language: node_js
node_js:
  - "lts/*"

Fala pro Travis usar o NodeJS na versão LTS (Long Time Support). Você pode especificar outra como “7” ou “stable”, por exemplo. Eu prefiro a LTS.

cache:
  directories:
  - node_modules

Fala pro Travis fazer cache deste diretório entre as builds ao invés de re-compilar o diretório inteiro sempre.

script:
  - npm run build

Fala pro Travis qual comando rodar. Você pode adicionar qualquer comando aqui, por exemplo, - npm test. O Travis já sabe que deve rodar o npm install, não precisa dizer aqui.

deploy:
  provider: firebase
  token:
    secure: "<um token gerado>"
  message: "deploy via Travis CI"
  skip_cleanup: true
  local_dir: build
  on:
    branch: master

provider: firebase - especifica que estamos usando o Firebase. Poderia ser pages para GitHub-Pages.

secure: "<um token gerado>" - usa o token gerado com o firebase login:ci e substituiu aqui.

skip_cleanup: true - não apagar o arquivos de build.

local_dir: build - pegar arquivos apenas no diretório build.

on: branch: master - o Travis vai fazer o deploy apenas quando houver push na branch informada aqui. Neste caso, master. Você pode colocar qualquer branch aqui.

Edit this post on GitHub

Leia também