Skip to content

Instantly share code, notes, and snippets.

@mikamboo
Last active October 4, 2021 17:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mikamboo/fe2ea26347fd22dbfbd25d05b681a51c to your computer and use it in GitHub Desktop.
Save mikamboo/fe2ea26347fd22dbfbd25d05b681a51c to your computer and use it in GitHub Desktop.
DevOps : Firebase hosting deploy using Gitlab-CI + Doppler secret maneger

Mettre en place un pipeline CI/CD avec Gitlab pour déployer un application web sur Firebase en utilisant Doppler pour gérer les secrets.

Pré-requis

  • Un projet Firebase actif
  • Un prjet sous Gitlab
  • Un compte sur Doppler

Step 1 : Get Firebase token + init project

npm install -g firebase-tools
firebase login:ci

Save the FIREBASE_TOKEN output from firebase login command.

firebase init --token $FIREBASE_TOKEN

Step 2 : Init hosting

  • Create env site targets on firebase console + update firebase.json + .firebaserc accordingly.

image

Ex : Ajout d'un nnouveau site (TARGET)

image

Manually trigger first deployment (Do it for each target env)

TARGET_NAME=dev
firebase deploy --only hosting:$TARGET_NAME --token xxxx

Step 3 : Add Doppler secrets

sur Doppler créer le projet enrefister les variables secrète de Firebase. FIREBASE_TOKEN, FIREBASE_PROJECT, ...

image

Read more in docs

image: mikangali/firebase:dev
stages:
- deploy
cache:
paths:
- node_modules/
- .yarn
before_script:
- yarn install --cache-folder .yarn
- yarn build
.deploy:
variables:
TARGET_NAME: $FIREBASE_HOSTING_TARGET
script:
- (curl -Ls https://cli.doppler.com/install.sh || wget -qO- https://cli.doppler.com/install.sh) | sh
- doppler run --command="firebase use $FIREBASE_PROJECT"
- doppler run --command="firebase deploy --only hosting:$TARGET_NAME -m $CI_COMMIT_TITLE"
deploy dev:
stage: deploy
variables:
DOPPLER_TOKEN: $DOPPLER_TOKEN_DEV
environment: development
extends:
- .deploy
only:
- develop
deploy staging:
stage: deploy
variables:
DOPPLER_TOKEN: $DOPPLER_TOKEN_STG
environment: staging
extends:
- .deploy
only:
- staging
deploy production:
stage: deploy
variables:
DOPPLER_TOKEN: $DOPPLER_TOKEN_PRD
environment: production
extends:
- .deploy
only:
- master
@mikamboo
Copy link
Author

image
image
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment