I have a cloud build trigger that attempts to push my application to firebase hosting. To do that I have an encrypted .env.enc file that contains the firebase token needed t
See:
$ git clone https://github.com/GoogleCloudPlatform/cloud-builders-community
$ cd firebase
$ gcloud builds submit --config cloudbuild.yaml .
$ firebase login:ci
$ gcloud kms keyrings create cloudbuilder --location global
$ gcloud kms keys create firebase-token --location global --keyring cloudbuilder --purpose encryption
$ echo -n <ciToken> | gcloud kms encrypt \
--plaintext-file=- \
--ciphertext-file=- \
--location=global \
--keyring=cloudbuilder \
--key=firebase-token | base64
See:
secrets:
- kmsKeyName: projects/<projectName>/locations/global/keyRings/cloudbuilder/cryptoKeys/firebase-token
secretEnv:
FIREBASE_TOKEN: <EncryptedCiToken>
steps:
- id: 'npm install'
name: 'gcr.io/cloud-builders/npm'
args: ['install']
- id: 'functions npm install'
name: 'gcr.io/cloud-builders/npm'
args: ['install']
dir: 'functions'
- id: "deploy firebase"
name: 'gcr.io/$PROJECT_ID/firebase'
args: ['deploy', '--project=<projectName>']
# Deploy specific Firebase services
# (If you only want to deploy specific Firebase services or features)
#
# - id: "deploy firebase"
# name: 'gcr.io/$PROJECT_ID/firebase'
# args: ['deploy', '--only', 'functions', '--project=<projectName>']
#
# - id: "deploy firebase storage"
# name: 'gcr.io/$PROJECT_ID/firebase'
# args: ['deploy', '--only', 'storage', '--project=<projectName>']
# secretEnv: ['FIREBASE_TOKEN']
#
# - id: "deploy firebase firestore"
# name: 'gcr.io/$PROJECT_ID/firebase'
# args: ['deploy', '--only', 'firestore', '--project=<projectName>']
# secretEnv: ['FIREBASE_TOKEN']
#
# - id: "deploy firebase hosting"
# name: 'gcr.io/$PROJECT_ID/firebase'
# args: ['deploy', '--only', 'hosting', '--project=<projectName>']