Skip to content

fix: checkout with submodules #49

fix: checkout with submodules

fix: checkout with submodules #49

name: Test VoiceOver
on:
push:
branches: [main]
pull_request:
branches: [main]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
pull-requests: write
# Allow one concurrent deployment
concurrency:
group: "pages"
cancel-in-progress: true
jobs:
install:
name: Install
runs-on: macos-12
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- uses: actions/setup-node@v3
with:
node-version: 20
- name: Cache node_modules
uses: actions/cache@v3
id: cache-node-modules
with:
path: |
node_modules
key: modules-${{ hashFiles('yarn.lock') }}
- name: Cache Playwright binaries
uses: actions/cache@v3
id: cache-playwright
with:
path: |
~/Library/Caches/ms-playwright
key: playwright-${{ hashFiles('yarn.lock') }}
- name: Cache Test Suites
uses: actions/cache@v3
id: cache-test-suites
with:
path: |
testSuites.json
key: testSuites-${{ hashFiles('aria-at') }}-${{ hashFiles('ignoredTests.json') }}
- name: Install Dependencies
if: steps.cache-node-modules.outputs.cache-hit != 'true'
run: yarn install --frozen-lockfile
- name: Install Playwright Browsers
if: steps.cache-playwright.outputs.cache-hit != 'true'
run: yarn test:install
- name: Generate Test Suites
if: steps.cache-test-suites.outputs.cache-hit != 'true'
run: yarn test:generate
test-voiceover:
name: Playwright VoiceOver Tests
needs: install
runs-on: macos-12
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- uses: actions/setup-node@v3
with:
node-version: 20
- name: Guidepup Setup
uses: guidepup/[email protected]
- name: Cache node_modules
uses: actions/cache@v3
with:
path: |
node_modules
key: modules-${{ hashFiles('yarn.lock') }}
- name: Cache Playwright
uses: actions/cache@v3
with:
path: |
~/Library/Caches/ms-playwright
key: playwright-${{ hashFiles('yarn.lock') }}
- name: Cache Test Suites
uses: actions/cache@v3
with:
path: |
testSuites.json
key: testSuites-${{ hashFiles('aria-at') }}-${{ hashFiles('ignoredTests.json') }}
- name: Run Tests
run: yarn test
continue-on-error: true
- uses: actions/upload-artifact@v3
if: always()
continue-on-error: true
with:
name: artifacts-${{ matrix.spec }}
path: |
./test-results
./recordings
- uses: actions/upload-artifact@v3
if: always()
continue-on-error: true
with:
name: playwright-report-${{ matrix.spec }}
path: |
./playwright-report
publish-html-report:
name: Publish to GitHub Pages
if: always()
needs: test-voiceover
runs-on: ubuntu-latest
environment:
name: ${{ github.head_ref || github.ref_name }}-report
url: ${{ steps.deploy-pages.outputs.page_url }}
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- uses: actions/setup-node@v3
with:
node-version: 18
- uses: actions/download-artifact@v3
with:
path: ./playwright-report
- name: Cache node_modules
uses: actions/cache@v3
with:
path: |
node_modules
key: modules-${{ hashFiles('yarn.lock') }}
- name: Create Test Report
run: yarn test:report
- name: Setup Pages
uses: actions/configure-pages@v3
- name: Upload Pages Artifact
uses: actions/upload-pages-artifact@v1
with:
path: ./html-report
- name: GitHub Pages Deployment
id: deploy-pages
uses: actions/deploy-pages@v1
- name: PR Comment
if: ${{ always() && github.event_name == 'pull_request' }}
uses: thollander/actions-comment-pull-request@v2
with:
message: |
Playwright Test Report: ${{steps.deploy-pages.outputs.page_url}}
comment_tag: "Playwright Test Report"
pr_number: ${{ inputs.pr_number }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}