Integração Contínua com o Travis e Firebase
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
dotravis.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.