Skip to content

Production deploy #1362

Production deploy

Production deploy #1362

Workflow file for this run

name: End-to-End Test
on:
pull_request:
branches:
- develop
- production
push:
branches:
- develop
- production
jobs:
build:
runs-on: ubuntu-latest
env:
ADMG_ACCESS_TOKEN: ${{ secrets.ADMG_ACCESS_TOKEN }}
GATSBY_ADMG_CLIENT_ID: ${{ secrets.GATSBY_ADMG_CLIENT_ID }}
GATSBY_ADMG_CLIENT_SECRET: ${{ secrets.GATSBY_ADMG_CLIENT_SECRET }}
GATSBY_CPU_COUNT: 2
GATSBY_MAPBOX_TOKEN: ${{ secrets.GATSBY_MAPBOX_TOKEN }}
steps:
- name: Cancel Previous Runs
uses: styfle/[email protected]
with:
access_token: ${{ github.token }}
- name: Checkout
uses: actions/checkout@v2
- name: Read .nvmrc
run: echo ::set-output name=NVMRC::$(cat .nvmrc)
id: nvm
- name: Use Node.js ${{ steps.nvm.outputs.NVMRC }}
uses: actions/setup-node@v1
with:
node-version: ${{ steps.nvm.outputs.NVMRC }}
- name: Cache node modules
uses: actions/cache@v2
with:
path: node_modules
key: ${{ runner.os }}-node-modules-${{ hashFiles('yarn.lock') }}
- name: Cache Gatsby .cache folder
uses: actions/cache@v2
with:
path: .cache
key: ${{ runner.os }}-gatsby-cache-${{ hashFiles('yarn.lock') }}
- name: Cache Gatsby public folder
id: cache-build
uses: actions/cache@v2
with:
path: public
key: ${{ runner.os }}-gatsby-build-${{ hashFiles('yarn.lock') }}-${{ hashFiles('src/**') }}
- name: Install
run: yarn install
- name: Build
if: steps.cache-build.outputs.cache-hit != 'true'
run: yarn build
test-e2e-playwright:
needs: build
runs-on: ubuntu-latest
env:
ADMG_ACCESS_TOKEN: ${{ secrets.ADMG_ACCESS_TOKEN }}
GATSBY_ADMG_CLIENT_ID: ${{ secrets.GATSBY_ADMG_CLIENT_ID }}
GATSBY_ADMG_CLIENT_SECRET: ${{ secrets.GATSBY_ADMG_CLIENT_SECRET }}
GATSBY_CPU_COUNT: 2
GATSBY_MAPBOX_TOKEN: ${{ secrets.GATSBY_MAPBOX_TOKEN }}
steps:
- name: Cancel Previous Runs
uses: styfle/[email protected]
with:
access_token: ${{ github.token }}
- name: Checkout
uses: actions/checkout@v3
- name: Read .nvmrc
run: echo ::set-output name=NVMRC::$(cat .nvmrc)
id: nvm
- name: Use Node.js ${{ steps.nvm.outputs.NVMRC }}
uses: actions/setup-node@v3
with:
node-version: ${{ steps.nvm.outputs.NVMRC }}
- name: Restore node modules
uses: actions/cache@v2
with:
path: node_modules
key: ${{ runner.os }}-node-modules-${{ hashFiles('yarn.lock') }}
- name: Restore Gatsby .cache folder
uses: actions/cache@v2
with:
path: .cache
key: ${{ runner.os }}-gatsby-cache-${{ hashFiles('yarn.lock') }}
- name: Restore Gatsby public folder
uses: actions/cache@v2
with:
path: public
key: ${{ runner.os }}-gatsby-build-${{ hashFiles('yarn.lock') }}-${{ hashFiles('src/**') }}
- name: Install npm dependencies
run: yarn install
- name: Install Playwright
run: npx playwright install --with-deps
- name: Serve App
run: yarn serve -p 8888 &
- name: Test End-to-end
run: xvfb-run npx playwright test -c ./playwright/e2e
- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: playwright-report
path: playwright-report
visual-regression:
needs: build
if: ${{ github.event.pull_request.base.ref == 'production'}}
runs-on: ubuntu-latest
env:
PERCY_TOKEN: ${{ secrets.PERCY_TOKEN }}
steps:
- name: Cancel Previous Runs
uses: styfle/[email protected]
with:
access_token: ${{ github.token }}
- name: Checkout
uses: actions/checkout@v2
- name: Restore Gatsby public folder
uses: actions/cache@v2
with:
path: public
key: ${{ runner.os }}-gatsby-build-${{ hashFiles('yarn.lock') }}-${{ hashFiles('src/**') }}
- name: Percy Build
run: npx @percy/cli snapshot -c .percy.yml ./public