Merge pull request #54 from ThetaTauMiami/elizabeth-branch #131
This file contains hidden or 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
| name: Deploy to Firebase Hosting and Functions | |
| on: | |
| pull_request: # For preview deployments | |
| push: | |
| branches: | |
| - main # For production deployments | |
| jobs: | |
| deploy_preview: | |
| name: Deploy Preview | |
| if: github.event_name == 'pull_request' | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| checks: write | |
| pull-requests: write | |
| steps: | |
| - uses: actions/checkout@v3 | |
| # Create environment config | |
| - name: Create environment config | |
| run: | | |
| echo "const ENV = {" > public/config/env-config.js | |
| echo " FIREBASE_API_KEY: \"${{ secrets.FIREBASE_API_KEY }}\"," >> public/config/env-config.js | |
| echo " FIREBASE_AUTH_DOMAIN: \"${{ secrets.FIREBASE_AUTH_DOMAIN }}\"," >> public/config/env-config.js | |
| echo " FIREBASE_PROJECT_ID: \"${{ secrets.FIREBASE_PROJECT_ID }}\"," >> public/config/env-config.js | |
| echo " FIREBASE_STORAGE_BUCKET: \"${{ secrets.FIREBASE_STORAGE_BUCKET }}\"," >> public/config/env-config.js | |
| echo " FIREBASE_MESSAGING_SENDER_ID: \"${{ secrets.FIREBASE_MESSAGING_SENDER_ID }}\"," >> public/config/env-config.js | |
| echo " FIREBASE_APP_ID: \"${{ secrets.FIREBASE_APP_ID }}\"," >> public/config/env-config.js | |
| echo " FIREBASE_MEASUREMENT_ID: \"${{ secrets.FIREBASE_MEASUREMENT_ID }}\"" >> public/config/env-config.js | |
| echo "};" >> public/config/env-config.js | |
| echo "export default ENV;" >> public/config/env-config.js | |
| # For Pull Requests - Only deploy Hosting preview | |
| - name: Deploy Hosting Preview | |
| uses: FirebaseExtended/action-hosting-deploy@v0 | |
| with: | |
| repoToken: ${{ secrets.GITHUB_TOKEN }} | |
| firebaseServiceAccount: ${{ secrets.FIREBASE_SERVICE_ACCOUNT }} | |
| projectId: thetataumiamiuniversity | |
| channelId: preview | |
| deploy_production: | |
| name: Deploy to Firebase | |
| if: github.ref == 'refs/heads/main' | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - uses: actions/checkout@v3 | |
| # Setup Python 3.12 | |
| - name: Set up Python | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: '3.12' | |
| # Create environment config | |
| - name: Create environment config | |
| run: | | |
| echo "const ENV = {" > public/config/env-config.js | |
| echo " FIREBASE_API_KEY: \"${{ secrets.FIREBASE_API_KEY }}\"," >> public/config/env-config.js | |
| echo " FIREBASE_AUTH_DOMAIN: \"${{ secrets.FIREBASE_AUTH_DOMAIN }}\"," >> public/config/env-config.js | |
| echo " FIREBASE_PROJECT_ID: \"${{ secrets.FIREBASE_PROJECT_ID }}\"," >> public/config/env-config.js | |
| echo " FIREBASE_STORAGE_BUCKET: \"${{ secrets.FIREBASE_STORAGE_BUCKET }}\"," >> public/config/env-config.js | |
| echo " FIREBASE_MESSAGING_SENDER_ID: \"${{ secrets.FIREBASE_MESSAGING_SENDER_ID }}\"," >> public/config/env-config.js | |
| echo " FIREBASE_APP_ID: \"${{ secrets.FIREBASE_APP_ID }}\"," >> public/config/env-config.js | |
| echo " FIREBASE_MEASUREMENT_ID: \"${{ secrets.FIREBASE_MEASUREMENT_ID }}\"" >> public/config/env-config.js | |
| echo "};" >> public/config/env-config.js | |
| echo "export default ENV;" >> public/config/env-config.js | |
| # Setup Python virtual environment | |
| - name: Setup Python venv and dependencies | |
| run: | | |
| cd functions | |
| python -m venv venv | |
| source venv/bin/activate | |
| pip install -r requirements.txt | |
| # Deploy using Firebase CLI | |
| - name: Deploy to Firebase | |
| run: | | |
| npm install -g firebase-tools | |
| firebase deploy --token "${{ secrets.FIREBASE_TOKEN }}" --force --project thetataumiamiuniversity --only hosting |