Standard colours #2033
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: CI | |
on: | |
- push | |
- pull_request | |
# Allow running manually | |
- workflow_dispatch | |
jobs: | |
# Tests the list of offline files in the Service Worker and compares it to the contents of the www directory | |
# Also runs end-to-end tests on Windows (taking advantage of the build) | |
tests-files-windows: | |
# We want to run on external PRs, but not on our own internal PRs as they'll be run by the push to the branch | |
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install dependencies | |
run: npm ci | |
- name: Test the list of offline files in Service Worker | |
shell: pwsh | |
run: ./scripts/Check-OfflineFilesList.ps1 | |
# This job runs always, including for remote pull requests, and | |
# has external dependencies or special permission needs, besides a | |
# local install of Node.js, Firefox, and Chromium or Chrome. | |
# | |
# You can run these same tests locally in your own developer | |
# environment via `npm ci && npm test`. | |
tests-linux: | |
# We want to run on external PRs, but not on our own internal PRs as they'll be run by the push to the branch | |
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository | |
runs-on: ubuntu-20.04 | |
steps: | |
# Clone the repo and checkout the commit for which the workflow was triggered | |
- uses: actions/checkout@v3 | |
- name: Test integrity of app parameters | |
shell: bash | |
run: | | |
# Check that values of assetsCache and appVersion are correctly duplicated | |
chmod +x ./scripts/test_duplicate_values.sh | |
./scripts/test_duplicate_values.sh | |
# Check that PWAServer is correctly set in app.js | |
chmod +x ./scripts/test_pwa_server.sh | |
./scripts/test_pwa_server.sh | |
- name: Install dependencies | |
run: npm ci | |
- name: Unit tests (Linux) | |
run: npm run test-unit-browsers | |
- name: Test a full build of the app | |
run: npm run build | |
- name: End-to-end tests (Linux) | |
env: | |
GITHUB_ACTION: ${{ github.event_name }} | |
shell: bash | |
run: | | |
echo -e "\n\e[0;32mTesting on Edge Chromium..." | |
npm run test-e2e-edge | |
echo -e "\n\e[0;32mTesting on Chrome..." | |
npm run test-e2e-chrome | |
echo -e "\n\e[0;32mTesting on Firefox..." | |
npm run test-e2e-firefox | |
tests-windows: | |
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository | |
runs-on: windows-latest | |
steps: | |
# Clone the repo and checkout the commit for which the workflow was triggered | |
- uses: actions/checkout@v3 | |
- name: Install dependencies | |
run: npm ci | |
- name: Unit tests (Windows) | |
shell: pwsh | |
run: | | |
npm run test-unit-edge | |
npm run test-unit-firefox | |
- name: End-to-end tests (Windows) | |
env: | |
GITHUB_ACTION: ${{ github.event_name }} | |
shell: pwsh | |
run: | | |
Write-Host "`nBuilding the app..." -ForegroundColor Green | |
npm run build-min | |
Write-Host "`nTesting on Edge Chromium..." -ForegroundColor Green | |
npm run test-e2e-edge | |
Write-Host "`nTesting on Firefox..." -ForegroundColor Green | |
npm run test-e2e-firefox | |
Write-Host "`nTesting on IE11..." -ForegroundColor Green | |
npm run test-e2e-iemode | |
# tests-unit-mac: | |
# if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository | |
# runs-on: macos-latest | |
# steps: | |
# # Clone the repo and checkout the commit for which the workflow was triggered | |
# - uses: actions/checkout@v3 | |
# - name: Install dependencies | |
# run: npm ci | |
# - name: Unit tests (Mackintosh) | |
# run: | | |
# npx testcafe remote ./tests/initTestCafe.js --hostname localhost --ports 1337,1338 & | |
# pid=$! | |
# open -a Safari http://localhost:1337 | |
# wait $pid | |