passed project id explicitly #278
Workflow file for this run
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
# Nonprofit Social Networking Platform: Allowing Users and Organizations to Collaborate. | |
# Copyright (C) 2023 ASCENDynamics NFP | |
# This file is part of Nonprofit Social Networking Platform. | |
# Nonprofit Social Networking Platform is free software: you can redistribute it and/or modify | |
# it under the terms of the GNU Affero General Public License as published | |
# by the Free Software Foundation, either version 3 of the License, or | |
# (at your option) any later version. | |
# Nonprofit Social Networking Platform is distributed in the hope that it will be useful, | |
# but WITHOUT ANY WARRANTY; without even the implied warranty of | |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
# GNU Affero General Public License for more details. | |
# You should have received a copy of the GNU Affero General Public License | |
# along with Nonprofit Social Networking Platform. If not, see <https://www.gnu.org/licenses/>. | |
name: CI and PR Deployment | |
on: | |
# push: | |
# branches: | |
# - main # Trigger workflow on push events to the main branch | |
pull_request: | |
branches: | |
- main # Trigger workflow on pull requests targeting the main branch | |
jobs: | |
# lint: | |
# runs-on: ubuntu-latest # Use the latest Ubuntu runner | |
# steps: | |
# # Checkout the repository | |
# - name: Checkout repository | |
# uses: actions/checkout@v3 | |
# # Set up Node.js environment | |
# - name: Set up Node.js | |
# uses: actions/setup-node@v3 | |
# with: | |
# node-version: 20 | |
# # Install dependencies using npm ci | |
# - name: Install dependencies | |
# run: npm ci | |
# # Run linting | |
# - name: Run lint | |
# run: npm run lint | |
build-and-test: | |
runs-on: ubuntu-latest # Use the latest Ubuntu runner | |
# needs: lint # This job depends on the successful completion of the lint job | |
steps: | |
# Checkout the repository | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
# Cache node modules to speed up installation | |
- name: Cache node modules | |
uses: actions/cache@v3 | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('**/package.json') }} | |
restore-keys: | | |
${{ runner.os }}-node- | |
# Set up Node.js environment | |
- name: Set up Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 20 | |
# Install dependencies using npm ci | |
- name: Install dependencies | |
run: npm ci | |
# Build the project | |
- name: Build project | |
run: npm run build | |
# Run tests | |
- name: Run tests | |
run: npm run test | |
build_and_preview: | |
if: ${{ github.event.pull_request.head.repo.full_name == github.repository }} # Only run this job for pull requests from the same repository | |
runs-on: ubuntu-latest # Use the latest Ubuntu runner | |
needs: build-and-test # This job depends on the successful completion of the build-and-test job | |
steps: | |
# Checkout the repository | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
# Cache node modules to speed up installation | |
- name: Cache node modules | |
uses: actions/cache@v3 | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('**/package.json') }} | |
restore-keys: | | |
${{ runner.os }}-node- | |
# Set up Node.js environment | |
- name: Set up Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 20 | |
# Install dependencies using npm ci | |
- name: Install dependencies | |
run: npm ci | |
# Build the project | |
- name: Build project | |
run: npm run build | |
# Deploy to Firebase Preview | |
- name: Deploy to Firebase Preview | |
uses: FirebaseExtended/action-hosting-deploy@v0 | |
with: | |
repoToken: "${{ secrets.GITHUB_TOKEN }}" # GitHub token for authentication | |
firebaseServiceAccount: "${{ secrets.FIREBASE_SERVICE_ACCOUNT_ASCENDCOOPPLATFORM_DEV }}" # Firebase service account key | |
projectId: ascendcoopplatform-dev # Firebase project ID |