This repository has been archived by the owner on Sep 12, 2024. It is now read-only.
Fix check for undefined globalThis #34
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: Code Tests | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
branches: [main] | |
jobs: | |
build: # cache `npm` folder based on commit hash | |
name: Build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
- uses: denoland/setup-deno@v1 | |
with: | |
deno-version: v1.x | |
- name: Check for cached folders | |
id: cache-full | |
uses: actions/cache@v4 | |
with: | |
path: | | |
npm | |
key: cache-${{ github.sha }} | |
- name: Run dnt (with tests) | |
if: steps.cache-full.outputs.cache-hit != 'true' | |
run: deno task dnt | |
node: | |
strategy: | |
matrix: | |
node-version: [16.x, 18.x, 20.x] | |
name: Node ${{ matrix.node-version }} | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- name: Retrieve cached folders | |
uses: actions/cache/restore@v4 | |
id: cache-full | |
with: | |
path: | | |
npm | |
key: cache-${{ github.sha }} | |
# ignore cache miss, since it was taken care of the `build` step and it should never occur here | |
- run: | | |
cd npm | |
npm ci | |
npm test | |
test-browsers-latest: | |
name: Browsers (latest) | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
- name: Retrieve cached built folders | |
uses: actions/cache/restore@v4 | |
id: cache-full | |
with: | |
path: | | |
npm | |
key: cache-${{ github.sha }} | |
- name: Install dependencies | |
run: | | |
cd test/runtimes/browsers | |
npm ci | |
- name: Get Playwright version | |
id: playwright-version | |
run: | | |
cd test/runtimes/browsers | |
PLAYWRIGHT_VERSION=$(npm ls playwright | grep playwright | head -n 1 | sed 's/.*@//') | |
echo "version=$PLAYWRIGHT_VERSION" >> $GITHUB_OUTPUT | |
- name: Check for cached browsers | |
id: cache-playwright-browsers | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/ms-playwright | |
key: playwright-browsers-${{ steps.playwright-version.outputs.version }} | |
- name: Install browsers | |
if: steps.cache-playwright-browsers.outputs.cache-hit != 'true' | |
run: | | |
cd test/runtimes/browsers | |
npx playwright install --with-deps chromium | |
npx playwright install --with-deps firefox | |
- name: Install WebKit # caching not possible, external shared libraries required | |
run: | | |
cd test/runtimes/browsers | |
npx playwright install --with-deps webkit | |
- name: Run browser tests | |
run: | | |
cd test/runtimes/browsers | |
npm test | |
test-browsers-compatibility: | |
name: Browsers (older, on Browserstack) | |
runs-on: ubuntu-latest | |
needs: test-browsers-latest | |
env: # credentials need hardcoding for now since Github secrets aren't accessible on pull requests from forks | |
BROWSERSTACK_USERNAME: openpgpjs_PlY4Uq885CQ | |
BROWSERSTACK_ACCESS_KEY: VjgBVRMxNVBj7SjJFiau | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
- name: Retrieve cached dist folder | |
uses: actions/cache/restore@v4 | |
id: cache-full | |
with: | |
path: | | |
npm | |
key: cache-${{ github.sha }} | |
- name: Run browserstack tests | |
run: | | |
cd test/runtimes/browsers | |
npm ci | |
npm run test-browserstack |