-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Deploy functions yml to be run from stg branch
- Loading branch information
Showing
3 changed files
with
100 additions
and
46 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,49 +1,75 @@ | ||
name: Deploy to Firebase Functions | ||
name: Deploy to DEV | ||
|
||
on: | ||
push: | ||
branches: | ||
- stg | ||
workflow_dispatch: | ||
|
||
env: | ||
FIREBASE_PROJECT_ID: "schemessg-v3-dev" | ||
SERVICE_ACCOUNT_KEY: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_SCHEMESSG_V3_DEV }} | ||
|
||
jobs: | ||
deploy: | ||
name: Deploy Functions | ||
build_and_deploy: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
# Step 1: Checkout the code | ||
- name: Checkout Repository | ||
uses: actions/checkout@v3 | ||
|
||
# Step 2: Set up Node.js environment | ||
- name: Setup Node.js | ||
uses: actions/setup-node@v3 | ||
with: | ||
node-version: 18 | ||
|
||
# Step 3: Install Dependencies | ||
- name: Install Dependencies | ||
run: | | ||
npm install -g [email protected] | ||
# Step 4: Authenticate Firebase CLI | ||
- name: Authenticate Firebase CLI | ||
env: | ||
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN_SCHEMES_V3_DEV }} | ||
run: | | ||
echo "$SERVICE_ACCOUNT_KEY" > ${HOME}/serviceAccountKey.json | ||
firebase auth:login:ci --project $FIREBASE_PROJECT_ID --token $FIREBASE_TOKEN | ||
firebase use --add $FIREBASE_PROJECT_ID --token $FIREBASE_TOKEN | ||
# Step 5: Deploy All Functions | ||
- name: Deploy Firebase Functions | ||
run: | | ||
firebase deploy --only functions --project $FIREBASE_PROJECT_ID | ||
env: | ||
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }} | ||
GOOGLE_APPLICATION_CREDENTIALS: ${HOME}/serviceAccountKey.json | ||
# Step 1: Checkout the code | ||
- uses: actions/checkout@v3 | ||
|
||
# Step 1.5: Environment variables | ||
- name: create env file | ||
working-directory: backend | ||
run: | | ||
cd functions | ||
touch .env | ||
echo "${{ secrets.FUNCTIONS_ENV_VARS }}" >> .env | ||
# Step 2: Set up Python environment | ||
- name: Set up Python | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: '3.10' | ||
|
||
# Step 3: Set up Node.js environment | ||
- name: Set up Node | ||
uses: actions/setup-node@v3 | ||
with: | ||
node-version: 19.7.0 | ||
|
||
# Step 3.5: Download the ZIP file from Google Drive | ||
- name: Download Models ZIP | ||
run: | | ||
wget "${{ secrets.LINK_TO_MODEL_FILES }}" -O models.zip | ||
- name: List Directory Contents | ||
run: ls -lh models.zip | ||
- name: Check File Type | ||
run: file models.zip | ||
|
||
# Step 3.5.2: Extract the ZIP file | ||
- name: Extract Models ZIP | ||
run: | | ||
unzip models.zip -d backend/functions/ml_logic | ||
# Step 3.5.3: Clean up | ||
- name: Clean Up | ||
run: rm models.zip | ||
|
||
# Step 4: Create Service Account Key and Set Env Variables | ||
- name: Create SA key and set env variables | ||
run: | | ||
echo '${{ secrets.FIREBASE_SERVICE_ACCOUNT_SCHEMESSG_V3_DEV }}' > ${{ runner.temp }}/gcloud.json | ||
echo "GOOGLE_APPLICATION_CREDENTIALS=${{ runner.temp }}/gcloud.json" >> $GITHUB_ENV | ||
# Step 5: Prepare the environment | ||
- name: Prepare the environment | ||
working-directory: backend/functions | ||
run: | | ||
python3.10 -m venv venv | ||
. venv/bin/activate | ||
npx firebase-tools --version | ||
python3.10 -m pip install -r requirements.txt | ||
# Step 6: deploy functions | ||
- name: Deploy functions | ||
working-directory: backend | ||
env: | ||
GOOGLE_APPLICATION_CREDENTIALS: ${{ runner.temp }}/gcloud.json | ||
run: npx firebase-tools deploy --only functions --debug --token "${{ secrets.FIREBASE_TOKEN_SCHEMESSG_V3_DEV }}" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters