name: CI on: push: branches: - main pull_request: branches: - main jobs: format: name: Format runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: "20" - run: npm ci - run: npx prettier --check . lint_test: name: Lint and Test runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: "20" - run: npm ci - run: npx eslint src - run: npm test functions: name: Cloud Functions runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: "20" - run: npm ci working-directory: functions - run: npm run lint working-directory: functions - run: npm run build working-directory: functions deploy: name: Deploy Staging needs: [format, lint_test, functions] if: github.event_name == 'push' && github.repository_owner == 'eltoder' uses: ./.github/workflows/deploy.yml with: env: staging secrets: firebase-token: ${{ secrets.FIREBASE_DEV_TOKEN }}