RandomChad/.github/workflows/deploy-functions.yml
2021-12-15 14:47:07 +01:00

73 lines
2.3 KiB
YAML

name: Deploy function updates ( main )
on:
# Trigger: on new tag push
push:
branches:
- main
paths:
- '.github/workflows/deploy-functions.yml'
- 'functions/**'
jobs:
build:
name: Publish changes
runs-on: ubuntu-latest
steps:
# Get the repo files from current commit
- name: Cloning repository
uses: actions/checkout@v1
# Install frontend dependencies based on nvmrc
- name: Read .nvmrc
run: echo "##[set-output name=NVMRC;]$(cat .nvmrc)"
id: nvmfunctions
working-directory: functions
- name: Set Node.js (.nvmrc)
uses: actions/setup-node@v1
with:
node-version: "${{ steps.nvmfunctions.outputs.NVMRC }}"
- name: Install functions dependencies
run: npm i
working-directory: functions
# Backup firestore before deploying to database
- name: 'Set up gcloud cli'
uses: google-github-actions/setup-gcloud@master
with:
service_account_key: "${{ secrets.GCP_SERVICE_ACCOUT_JSON_PRODUCTION }}"
export_default_credentials: true
# Note to self: needs IAM permissions
# see https://firebase.google.com/docs/firestore/manage-data/export-import
- name: Backup firestore
run: |
gcloud config set project ${{ secrets.FIREBASE_PROJECT_ID_PRODUCTION }}
echo "Project is now set to ${{ secrets.FIREBASE_PROJECT_ID_PRODUCTION }}"
gcloud firestore export ${{ secrets.GCP_BUCKET_LINK_PRODUCTION }}/firestore-backups/$(date +'%Y-%m-%d-%s')/
- name: Backup Rocketeer storage
run: |
mkdir rocketeer-image-backups
gcloud config set project ${{ secrets.FIREBASE_PROJECT_ID_PRODUCTION }}
echo "Project is now set to ${{ secrets.FIREBASE_PROJECT_ID_PRODUCTION }}"
gcloud -m cp -r ${{ secrets.GCP_BUCKET_LINK_PRODUCTION }}/mainnetRocketeers ./rocketeer-image-backups/
gzip -r -v -9 ./rocketeer-image-backups/
- uses: actions/upload-artifact@v2
with:
name: rocketeer-image-backup.gz
path: ./rocketeer-image-backups.gz
- name: Deploy to Firebase
uses: w9jds/firebase-action@master
with:
args: deploy --only=functions
env:
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}