tridactyl/.github/workflows/e2e.yml
Oliver Blanthorn 884dfc9349
Make E2E tests more helpful for PRs
PRs are more likely to have genuine failures than commits to master,
so retry them less often and try all the tests even if some fail
2022-11-09 14:58:38 +01:00

92 lines
3.1 KiB
YAML

name: e2e
on:
push:
branches:
- 'master'
schedule:
- cron: "45 7 * * *"
jobs:
test:
timeout-minutes: 120
strategy:
fail-fast: false
matrix:
os: [ubuntu, windows]
# os: [ubuntu, macos, windows]
browser: [firefox, firefoxesr]
exclude:
- os: macos
browser: firefoxesr
runs-on: ${{ matrix.os }}-latest
steps:
- name: Checkout
uses: actions/checkout@master
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- uses: actions/cache@v2
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install deps
run: |
yarn install
- name: Install Firefox Dev Edition (Linux)
if: matrix.browser == 'firefox' && matrix.os == 'ubuntu'
run: |
sudo yarn global add get-firefox
get-firefox --platform linux --branch devedition --extract --target $HOME
echo "$HOME/firefox" >> $GITHUB_PATH
- name: Install Firefox ESR (Linux)
if: matrix.browser == 'firefoxesr' && matrix.os == 'ubuntu'
run: |
sudo yarn global add get-firefox
get-firefox --platform linux --branch esr --extract --target $HOME
echo "$HOME/firefox" >> $GITHUB_PATH
- name: Install Firefox Dev Edition (MacOS)
if: matrix.browser == 'firefox' && matrix.os == 'macos'
run: |
brew install --cask homebrew/cask-versions/firefox-developer-edition
echo "/Applications/Firefox Developer Edition.app/Contents/MacOS/" >> $GITHUB_PATH
- name: Install Firefox Dev Edition (Windows)
if: matrix.browser == 'firefox' && matrix.os == 'windows'
run: |
choco install firefox-dev --pre
echo "C:\Program Files\Firefox Dev Edition" >> $GITHUB_PATH
- name: Install Firefox ESR (Windows)
if: matrix.browser == 'firefoxesr' && matrix.os == 'windows'
run: |
choco install firefoxesr
echo "C:\Program Files\Mozilla Firefox" >> $GITHUB_PATH
- name: Print Firefox version (Unix-like)
if: matrix.os == 'ubuntu' || matrix.os == 'macos'
run: firefox --version
- name: Build and test (Firefox)
uses: nick-invision/retry@v1
if: matrix.browser != 'chrome'
env:
HEADLESS: 1
with:
max_attempts: 40
timeout_minutes: 10
retry_wait_seconds: 10
command: |
yarn run clean && yarn run build --old-native && yarn make-zip && yarn jest
# - name: Test (Chrome, Linux)
# if: matrix.browser == 'chrome' && matrix.os == 'ubuntu'
# run: xvfb-run --auto-servernum npm run jest -- ${{ matrix.browser }} || xvfb-run --auto-servernum npm run jest -- ${{ matrix.browser }}
# - name: Test (Chrome, Windows/MacOs)
# if: matrix.browser == 'chrome' && matrix.os != 'ubuntu'
# run: npm run jest -- ${{ matrix.browser }} || npm run jest -- ${{ matrix.browser }}