Add postgres setup to workflow #116
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
name: Playwright Tests | ||
on: push | ||
jobs: | ||
playwright-tests: | ||
name: Playwright Tests | ||
runs-on: ubuntu-latest # or macos-latest, windows-latest | ||
env: | ||
PGHOST: localhost | ||
PGDATABASE: next_js_example_spring_2023 | ||
PGUSERNAME: next_js_example_spring_2023 | ||
PGPASSWORD: next_js_example_spring_2023 | ||
steps: | ||
- name: Start preinstalled PostgreSQL on Ubuntu | ||
run: | | ||
sudo systemctl start postgresql.service | ||
pg_isready | ||
- name: Create database user | ||
run: | | ||
sudo -u postgres psql --command="CREATE USER next_js_example_spring_2023 PASSWORD 'next_js_example_spring_2023'" --command="\du" | ||
- name: Create database and allow user | ||
run: | | ||
sudo -u postgres createdb --owner=next_js_example_spring_2023 next_js_example_spring_2023 | ||
- uses: actions/checkout@v3 | ||
- uses: pnpm/action-setup@v2 | ||
with: | ||
version: 'latest' | ||
# Use the official setup-node action (sets up Node.js): | ||
# https://github.com/actions/setup-node | ||
- name: Use Node.js | ||
uses: actions/setup-node@v3 | ||
with: | ||
node-version: 'lts/*' | ||
cache: 'pnpm' | ||
- name: Install dependencies | ||
run: pnpm install | ||
- name: Install SafeQL if not yet installed (eg. on Windows dev machines) | ||
run: grep package.json -e '@ts-safeql/eslint-plugin' || pnpm add @ts-safeql/eslint-plugin libpg-query | ||
- run: pnpm migrate up | ||
- name: Build Next.js app | ||
run: pnpm build | ||
- name: Run TypeScript Compiler | ||
run: pnpm tsc | ||
- name: Run ESLint | ||
run: pnpm eslint . --max-warnings 0 | ||
- name: Run Stylelint | ||
run: pnpm stylelint '**/*.{css,scss,less,js,tsx}' | ||
# Cache and install Playwright browser binaries, modified version of: | ||
# https://github.com/microsoft/playwright/issues/7249#issuecomment-1154603556 | ||
# https://github.com/microsoft/playwright/issues/7249#issuecomment-1385567519 | ||
# https://playwrightsolutions.com/playwright-github-action-to-cache-the-browser-binaries/ | ||
- name: Get installed Playwright version for cache key | ||
run: echo "PLAYWRIGHT_VERSION=$(yq eval '.version' --output-format=yaml ./node_modules/@playwright/test/package.json)" >> $GITHUB_ENV | ||
- name: Cache Playwright browser binaries | ||
uses: actions/cache@v3 | ||
id: playwright-browser-cache | ||
with: | ||
path: | | ||
~/.cache/ms-playwright | ||
key: ${{ runner.os }}-playwright-${{ env.PLAYWRIGHT_VERSION }} | ||
- name: Install Playwright browsers only on cache miss | ||
run: pnpm playwright install --with-deps chromium | ||
if: steps.playwright-browser-cache.outputs.cache-hit != 'true' | ||
- name: Run tests | ||
run: pnpm playwright test | ||
- uses: actions/upload-artifact@v3 | ||
if: failure() | ||
with: | ||
name: playwright-screenshots-videos | ||
path: playwright/test-results/ | ||
deploy: | ||
name: Deploy to Fly.io | ||
runs-on: ubuntu-latest | ||
needs: e2e-tests | ||
Check failure on line 78 in .github/workflows/test-playwright-and-deploy-to-fly-io.yml GitHub Actions / Playwright TestsInvalid workflow file
|
||
if: github.ref == 'refs/heads/main' | ||
env: | ||
FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }} | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: superfly/flyctl-actions/setup-flyctl@master | ||
- run: flyctl deploy --remote-only |