Feat/frontend/event #265
Workflow file for this run
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: Development | |
| on: | |
| push: | |
| branches: | |
| - development | |
| - main | |
| paths-ignore: | |
| - '**/*.md' | |
| pull_request: | |
| branches: | |
| - development | |
| - main | |
| - feat/* | |
| jobs: | |
| build-and-test: | |
| if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')" | |
| runs-on: ubuntu-latest | |
| env: | |
| SERVICE_ACCOUNT_KEY: ${{ secrets.SERVICE_ACCOUNT_KEY }} | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| - name: Install pnpm | |
| run: npm install -g pnpm | |
| - name: Install dependencies | |
| run: pnpm install | |
| - name: Generate Prisma client | |
| working-directory: backend | |
| run: pnpm exec prisma generate | |
| - name: Lint code | |
| run: pnpm run lint | |
| - name: Set root and backend variables for unit testing (different from building) | |
| run: | | |
| echo "PGHOST=${{ secrets.PGHOST_TEST }}" >> $GITHUB_ENV | |
| echo "PGDATABASE=${{ secrets.PGDATABASE_TEST }}" >> $GITHUB_ENV | |
| echo "PGUSER=${{ secrets.PGUSER_TEST }}" >> $GITHUB_ENV | |
| echo "PGPASSWORD=${{ secrets.PGPASSWORD_TEST }}" >> $GITHUB_ENV | |
| echo "DATABASE_URL=${{ secrets.DATABASE_URL_TEST }}" >> $GITHUB_ENV | |
| echo "DIRECT_URL=${{ secrets.DIRECT_URL_TEST }}" >> $GITHUB_ENV | |
| - name: Set frontend environment variables for unit testing (currently same as building) | |
| run: | | |
| echo "NEXT_PUBLIC_BACKEND_BASE_URL=${{ secrets.NEXT_APP_BACKEND_BASE_URL }}" >> $GITHUB_ENV | |
| echo "NEXT_PUBLIC_FIREBASE_API_KEY=${{ secrets.NEXT_PUBLIC_FIREBASE_API_KEY }}" >> $GITHUB_ENV | |
| echo "NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=${{ secrets.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN }}" >> $GITHUB_ENV | |
| echo "NEXT_PUBLIC_FIREBASE_PROJECT_ID=${{ secrets.NEXT_PUBLIC_FIREBASE_PROJECT_ID }}" >> $GITHUB_ENV | |
| echo "NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=${{ secrets.NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET }}" >> $GITHUB_ENV | |
| echo "NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=${{ secrets.NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID }}" >> $GITHUB_ENV | |
| echo "NEXT_PUBLIC_FIREBASE_APP_ID=${{ secrets.NEXT_PUBLIC_FIREBASE_APP_ID }}" >> $GITHUB_ENV | |
| - name: Set Firebase Admin SDK secrets | |
| working-directory: backend | |
| run: | | |
| echo "$SERVICE_ACCOUNT_KEY" > ./serviceAccountKey.json | |
| - name: Run unit tests concurrently for frontend and backend | |
| run: pnpm run test:unit:ci | |
| - name: Set root and backend variables for building | |
| run: | | |
| echo "PGHOST=${{ secrets.PGHOST }}" >> $GITHUB_ENV | |
| echo "PGDATABASE=${{ secrets.PGDATABASE }}" >> $GITHUB_ENV | |
| echo "PGUSER=${{ secrets.PGUSER }}" >> $GITHUB_ENV | |
| echo "PGPASSWORD=${{ secrets.PGPASSWORD }}" >> $GITHUB_ENV | |
| echo "DATABASE_URL=${{ secrets.DATABASE_URL }}" >> $GITHUB_ENV | |
| echo "DIRECT_URL=${{ secrets.DIRECT_URL }}" >> $GITHUB_ENV | |
| - name: Set frontend environment variables for building | |
| run: | | |
| echo "NEXT_PUBLIC_BACKEND_BASE_URL=${{ secrets.NEXT_APP_BACKEND_BASE_URL }}" >> $GITHUB_ENV | |
| echo "NEXT_PUBLIC_FIREBASE_API_KEY=${{ secrets.NEXT_PUBLIC_FIREBASE_API_KEY }}" >> $GITHUB_ENV | |
| echo "NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=${{ secrets.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN }}" >> $GITHUB_ENV | |
| echo "NEXT_PUBLIC_FIREBASE_PROJECT_ID=${{ secrets.NEXT_PUBLIC_FIREBASE_PROJECT_ID }}" >> $GITHUB_ENV | |
| echo "NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=${{ secrets.NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET }}" >> $GITHUB_ENV | |
| echo "NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=${{ secrets.NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID }}" >> $GITHUB_ENV | |
| echo "NEXT_PUBLIC_FIREBASE_APP_ID=${{ secrets.NEXT_PUBLIC_FIREBASE_APP_ID }}" >> $GITHUB_ENV | |
| - name: Build backend and frontend concurrently | |
| run: pnpm run build:all | |
| # - name: Start backend and frontend concurrently | |
| # run: pnpm run start:all | |
| # | |
| # - name: Shutdown the server (optional) | |
| # run: pkill -f "node" |