0ec539f084
- these larger machines aren't giving us much benefit and cost more money, so we're better off with the standard machines right now
98 lines
3.0 KiB
YAML
98 lines
3.0 KiB
YAML
name: Browser Tests
|
|
on:
|
|
push:
|
|
branches:
|
|
- 'main'
|
|
workflow_dispatch:
|
|
inputs:
|
|
environment:
|
|
description: 'Environment to run tests against'
|
|
type: environment
|
|
required: true
|
|
site_url:
|
|
description: 'Site URL (override)'
|
|
required: false
|
|
type: string
|
|
owner_email:
|
|
description: 'Owner email (override)'
|
|
required: false
|
|
type: string
|
|
owner_password:
|
|
description: 'Owner password (override)'
|
|
required: false
|
|
type: string
|
|
concurrency:
|
|
group: ${{ github.workflow }}
|
|
jobs:
|
|
test:
|
|
timeout-minutes: 60
|
|
runs-on: ubuntu-latest
|
|
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && !startsWith(github.head_ref, 'renovate/'))
|
|
environment: ${{ github.event.inputs.environment || 'browser-tests-local' }}
|
|
env:
|
|
ENVIRONMENT: ${{ github.event.inputs.environment || 'browser-tests-local' }}
|
|
defaults:
|
|
run:
|
|
working-directory: ghost/core
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
submodules: true
|
|
- uses: actions/setup-node@v3
|
|
with:
|
|
node-version: '16.x'
|
|
cache: yarn
|
|
|
|
- name: Install Stripe-CLI
|
|
run: |
|
|
export VERSION=1.13.5
|
|
wget "https://github.com/stripe/stripe-cli/releases/download/v$VERSION/stripe_${VERSION}_linux_x86_64.tar.gz"
|
|
tar -zxvf "stripe_${VERSION}_linux_x86_64.tar.gz"
|
|
mv stripe /usr/local/bin
|
|
stripe -v
|
|
|
|
- name: Install dependencies
|
|
run: yarn
|
|
|
|
- name: Run migrations
|
|
run: yarn setup
|
|
|
|
- name: Install Playwright
|
|
run: npx playwright install --with-deps
|
|
|
|
- name: Build Admin
|
|
if: env.ENVIRONMENT == 'browser-tests-local'
|
|
working-directory: ghost/admin
|
|
run: yarn build --silent
|
|
|
|
- name: Run Playwright tests on a remote site
|
|
if: env.ENVIRONMENT == 'browser-tests-staging'
|
|
run: yarn test:browser
|
|
env:
|
|
TEST_URL: ${{ github.event.inputs.site_url || secrets.TEST_URL }}
|
|
TEST_OWNER_EMAIL: ${{ github.event.inputs.owner_email || secrets.TEST_OWNER_EMAIL }}
|
|
TEST_OWNER_PASSWORD: ${{ github.event.inputs.owner_password || secrets.TEST_OWNER_PASSWORD }}
|
|
|
|
- name: Run Playwright tests locally
|
|
if: env.ENVIRONMENT == 'browser-tests-local'
|
|
run: yarn test:browser
|
|
env:
|
|
STRIPE_PUBLISHABLE_KEY: ${{ secrets.STRIPE_PUBLISHABLE_KEY }}
|
|
STRIPE_SECRET_KEY: ${{ secrets.STRIPE_SECRET_KEY }}
|
|
STRIPE_ACCOUNT_ID: ${{ secrets.STRIPE_ACCOUNT_ID }}
|
|
|
|
- uses: daniellockyer/action-slack-build@master
|
|
if: failure() && github.event_name == 'push' && github.ref == 'refs/heads/main'
|
|
with:
|
|
status: ${{ job.status }}
|
|
env:
|
|
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
|
|
|
|
- uses: actions/upload-artifact@v3
|
|
if: always()
|
|
with:
|
|
name: playwright-report
|
|
path: playwright-report/
|
|
retention-days: 30
|