Skip to content

Merge branch 'hotfix/20240727-1' #29

Merge branch 'hotfix/20240727-1'

Merge branch 'hotfix/20240727-1' #29

Workflow file for this run

# This is a basic workflow to help you get started with Actions
name: firebase functions deploy - prod server
# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the develop branch
push:
branches: [main]
jobs:
main:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setting Slack API
run: |
touch deployMessageToSlack.sh
echo 'curl -X POST -H 'Content-type: application/json' --data "{\"text\":\" [DEPLOY] [HAVIT_SERVER] deployment successful.\", \"icon_emoji\": \":ghost:\"}" ${{ secrets.PROD_WEB_HOOK_ERROR_MONITORING }}' >> deployMessageToSlack.sh
chmod 755 deployMessageToSlack.sh
- name: create env file
run: |
cd functions
touch .env.prod
echo "NODE_ENV=production" >> .env.prod
echo "WEB_HOOK_ERROR_MONITORING=${{ secrets.PROD_WEB_HOOK_ERROR_MONITORING }}" >> .env.prod
echo "DB_USER=${{ secrets.PROD_DB_USER }}" >> .env.prod
echo "DB_HOST=${{ secrets.PROD_DB_HOST }}" >> .env.prod
echo "DB_DB=${{ secrets.DB_DB }}" >> .env.prod
echo "DB_PASSWORD=${{ secrets.PROD_DB_PASSWORD }}" >> .env.prod
echo "JWT_SECRET=${{ secrets.PROD_JWT_SECRET }}" >> .env.prod
echo "TYPE=${{ secrets.TYPE }}" >> .env.prod
echo "PROJECT_ID=${{ secrets.PROD_PROJECT_ID }}" >> .env.prod
echo "PRIVATE_KEY=${{ secrets.PROD_PRIVATE_KEY }}" >> .env.prod
echo "PRIVATE_KEY_ID=${{ secrets.PROD_PRIVATE_KEY_ID }}" >> .env.prod
echo "CLIENT_EMAIL=${{ secrets.PROD_CLIENT_EMAIL }}" >> .env.prod
echo "CLIENT_ID=${{ secrets.PROD_CLIENT_ID }}" >> .env.prod
echo "AUTH_URI=${{ secrets.AUTH_URI }}" >> .env.prod
echo "TOKEN_URI=${{ secrets.TOKEN_URI }}" >> .env.prod
echo "AUTH_PROVIDER_CERT_URL=${{ secrets.AUTH_PROVIDER_CERT_URL }}" >> .env.prod
echo "CLIENT_CERT_URL=${{ secrets.PROD_CLIENT_CERT_URL }}" >> .env.prod
echo "PUSH_SERVER_URL=${{ secrets.PROD_PUSH_SERVER_URL }}" >> .env.prod
echo "APPLE_CLIENT_ID=${{ secrets.APPLE_CLIENT_ID}}" >> .env.prod
echo "APPLE_KEY_ID=${{ secrets.APPLE_KEY_ID }}" >> .env.prod
echo "APPLE_TEAM_ID=${{ secrets.APPLE_TEAM_ID }}" >> .env.prod
echo "APPLE_PRIVATE_KEY_FILE=${{ secrets.APPLE_PRIVATE_KEY_FILE }}" >> .env.prod
echo "JWT_ALGORITHM=${{ secrets.JWT_ALGORITHM }}" >> .env.prod
echo "JWT_ACCESS_EXPIRE=${{ secrets.JWT_ACCESS_EXPIRE }}" >> .env.prod
echo "JWT_REFRESH_EXPIRE=${{ secrets.JWT_REFRESH_EXPIRE }} " >> .env.prod
echo "SENTRY_DSN=${{ secrets.PROD_SENTRY_DSN }} " >> .env.prod
echo "SENTRY_TRACES_SAMPLE_RATE=${{ secrets.PROD_SENTRY_TRACES_SAMPLE_RATE }} " >> .env.prod
- name: create .p8 file
run: |
cd functions
touch ${{ secrets.APPLE_PRIVATE_KEY_FILE }}
echo "${{ secrets.APPLE_PRIVATE_KEY }}" > ${{ secrets.APPLE_PRIVATE_KEY_FILE }}
- name: create-json
id: create-dev-json
uses: jsdaniell/create-json@1.1.2
with:
name: "havit-wesopt29-firebase-adminsdk-mgljp-478046b091.json"
json: ${{ secrets.FIREBASE_JSON }}
dir: "functions/"
- name: create-json
id: create-prod-json
uses: jsdaniell/create-json@v1.1.2
with:
name: "havit-production-firebase-adminsdk-bypl1-d081cc62e4.json"
json: ${{ secrets.PROD_FIREBASE_JSON }}
dir: "functions/"
- name: Install npm pacakges
run: |
cd functions
npm install
npm install -g firebase-tools
npm install --save-dev cross-env
- name: Deploy to Firebase
run: |
cd functions
firebase use prod --token ${{ secrets.PROD_FIREBASE_TOKEN }}
npm run deploy --token ${{ secrets.PROD_FIREBASE_TOKEN }}
env:
FIREBASE_TOKEN: ${{ secrets.PROD_FIREBASE_TOKEN }}
- name: action-slack
uses: 8398a7/action-slack@v3
with:
status: ${{ job.status }}
author_name: Github Actions Dev Prod Server
fields: repo,message,commit,author,action,eventName,ref,workflow,job,took
env:
SLACK_WEBHOOK_URL: ${{ secrets.PROD_SLACK_BUILD_WEBHOOK_URL }} # required
if: always() # Pick up events even if the job fails or is canceled.