pompy.dev/.github/workflows/deploy.yml

68 lines
1.8 KiB
YAML

name: Build, Test, and Deploy
on:
push:
branches:
- master
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
deploy:
if: ${{ github.repository_owner == 'developomp' }}
name: Deploy
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@master
- uses: pnpm/action-setup@v2
with:
version: 8
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 18
cache: pnpm
- name: Store Playwright's Version
run: |
PLAYWRIGHT_VERSION=$(npm ls @playwright/test | grep @playwright | sed 's/.*@//')
echo "Playwright's Version: $PLAYWRIGHT_VERSION"
echo "PLAYWRIGHT_VERSION=$PLAYWRIGHT_VERSION" >> $GITHUB_ENV
- name: Cache Playwright Browsers for Playwright's Version
id: cache-playwright-browsers
uses: actions/cache@v3
with:
path: ~/.cache/ms-playwright
key: playwright-browsers-${{ env.PLAYWRIGHT_VERSION }}
- name: Install dependencies
run: pnpm install
- name: Install playwright browsers
if: steps.cache-playwright-browsers.outputs.cache-hit != 'true'
run: npx playwright install --with-deps
- name: Build
run: pnpm build
- name: Run unit tests
run: pnpm test:unit
- name: Run E2E tests
run: pnpm test:e2e
- uses: actions/upload-artifact@v3
with:
name: test-results
path: |
apps/*/test-results
- name: Deploy to Firebase
uses: w9jds/firebase-action@master
with:
args: deploy
env:
GCP_SA_KEY: ${{ secrets.GCP_SA_KEY }}