8390a474fe
* Update to output jest data for posting failed tests comment * Add failing test * Reset retries * Revert change for testing
131 lines
3.3 KiB
YAML
131 lines
3.3 KiB
YAML
on:
|
|
push:
|
|
branches: [canary]
|
|
pull_request:
|
|
types: [opened, synchronize]
|
|
|
|
name: Build, test, and deploy
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
NEXT_TELEMETRY_DISABLED: 1
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- run: git fetch --depth=1 origin +refs/tags/*:refs/tags/*
|
|
- run: yarn install --frozen-lockfile --check-files
|
|
- uses: actions/cache@v1
|
|
id: cache-build
|
|
with:
|
|
path: '.'
|
|
key: ${{ github.sha }}
|
|
|
|
lint:
|
|
runs-on: ubuntu-latest
|
|
needs: build
|
|
steps:
|
|
- uses: actions/cache@v1
|
|
id: restore-build
|
|
with:
|
|
path: '.'
|
|
key: ${{ github.sha }}
|
|
- run: yarn lint
|
|
|
|
testAll:
|
|
name: Test All
|
|
runs-on: ubuntu-latest
|
|
needs: build
|
|
env:
|
|
NEXT_TELEMETRY_DISABLED: 1
|
|
NEXT_TEST_JOB: 1
|
|
HEADLESS: true
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
group: [1, 2, 3, 4, 5, 6]
|
|
steps:
|
|
- uses: actions/cache@v1
|
|
id: restore-build
|
|
with:
|
|
path: '.'
|
|
key: ${{ github.sha }}
|
|
|
|
# TODO: remove after we fix watchpack watching too much
|
|
- run: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
|
|
|
|
- run: node run-tests.js --timings -g ${{ matrix.group }}/6 -c 3
|
|
|
|
testsPass:
|
|
name: thank you, next
|
|
runs-on: ubuntu-latest
|
|
needs: [lint, testAll]
|
|
steps:
|
|
- run: exit 0
|
|
|
|
testFirefox:
|
|
name: Test Firefox (production)
|
|
runs-on: ubuntu-latest
|
|
needs: build
|
|
env:
|
|
NEXT_TELEMETRY_DISABLED: 1
|
|
HEADLESS: true
|
|
steps:
|
|
- uses: actions/cache@v1
|
|
id: restore-build
|
|
with:
|
|
path: '.'
|
|
key: ${{ github.sha }}
|
|
- run: yarn testfirefox --forceExit test/integration/production/
|
|
|
|
testSafari:
|
|
name: Test Safari (production)
|
|
runs-on: ubuntu-latest
|
|
needs: build
|
|
env:
|
|
BROWSERSTACK: true
|
|
NEXT_TELEMETRY_DISABLED: 1
|
|
SKIP_LOCAL_SELENIUM_SERVER: true
|
|
BROWSERSTACK_USERNAME: ${{ secrets.BROWSERSTACK_USERNAME }}
|
|
BROWSERSTACK_ACCESS_KEY: ${{ secrets.BROWSERSTACK_ACCESS_KEY }}
|
|
steps:
|
|
- uses: actions/cache@v1
|
|
id: restore-build
|
|
with:
|
|
path: '.'
|
|
key: ${{ github.sha }}
|
|
- run: '[[ -z "$BROWSERSTACK_ACCESS_KEY" ]] && echo "Skipping for PR" || yarn testsafari --forceExit test/integration/production/'
|
|
|
|
testSafariOld:
|
|
name: Test Safari 10.1 (nav)
|
|
runs-on: ubuntu-latest
|
|
needs: [build, testSafari]
|
|
env:
|
|
BROWSERSTACK: true
|
|
LEGACY_SAFARI: true
|
|
NEXT_TELEMETRY_DISABLED: 1
|
|
SKIP_LOCAL_SELENIUM_SERVER: true
|
|
BROWSERSTACK_USERNAME: ${{ secrets.BROWSERSTACK_USERNAME }}
|
|
BROWSERSTACK_ACCESS_KEY: ${{ secrets.BROWSERSTACK_ACCESS_KEY }}
|
|
steps:
|
|
- uses: actions/cache@v1
|
|
id: restore-build
|
|
with:
|
|
path: '.'
|
|
key: ${{ github.sha }}
|
|
- run: '[[ -z "$BROWSERSTACK_ACCESS_KEY" ]] && echo "Skipping for PR" || yarn testsafari --forceExit test/integration/production-nav/'
|
|
|
|
publishRelease:
|
|
name: Potentially publish release
|
|
runs-on: ubuntu-latest
|
|
needs: [testsPass]
|
|
env:
|
|
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
steps:
|
|
- uses: actions/cache@v1
|
|
id: restore-build
|
|
with:
|
|
path: '.'
|
|
key: ${{ github.sha }}
|
|
|
|
- run: ./publish-release.sh
|