image: node:12.13.0-alpine

stages:
 - install
 - build
 - deploy

install:
  stage: install 
  script:
   - yarn install
  artifacts:
   paths:
    - node_modules

build:
 stage: build
 script:
    - CI=false yarn run build
 only: #mostra que só pode fazer o deploy para o website caso o git push seja feito para determinadas branchs
    - master
    - develop
 dependencies:
    - install
 artifacts:
    paths:
      - build

deploy-develop:
  stage: deploy
  only:
    - develop
  script:
    - npm install -g firebase-tools
    - firebase use Codigo-do-projeto teste-deploy-1d51f --token $FIREBASE_TOKEN #coloque o ID do seu projeto, e é aqui que usaremos o token que definimos no GitLab
    - firebase target:apply hosting develop dominio-cadastrado-para-desenvolvimento #É necessário cadastrar um segundo dominio para ter o deploy na branch develop
    - firebase deploy --only hosting:develop --token $FIREBASE_TOKEN
  dependencies:
    - build

deploy-production:
  stage: deploy
  only: 
    - master
  script:
    - npm install -g firebase-tools
    - firebase use Codigo-do-projeto --token $FIREBASE_TOKEN
    - firebase target:apply hosting production Codigo-do-projeto
    - firebase deploy --only hosting:production --token $FIREBASE_TOKEN
  dependencies:
    - build
