Skip to content
This repository has been archived by the owner on Sep 12, 2024. It is now read-only.

Drop support for Node 16 and 17 #36

Drop support for Node 16 and 17

Drop support for Node 16 and 17 #36

Workflow file for this run

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: [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