Skip to content

Merge pull request #479 from dajiaji/base-add-playwright-test #1176

Merge pull request #479 from dajiaji/base-add-playwright-test

Merge pull request #479 from dajiaji/base-add-playwright-test #1176

Workflow file for this run

name: Browser CI
on:
push:
branches: [main]
pull_request:
branches: [main]
permissions:
contents: read
jobs:
pages:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: denoland/setup-deno@v1
with:
deno-version: 2.x
- uses: actions/setup-node@v4
with:
node-version: v20.x
- name: Install dependencies
run: |
npm install -g typescript
npm install -g typedoc
npm install -g esbuild
- name: Run dnt
run: deno task dnt
- name: Run npm install
working-directory: ./npm
run: npm install
- name: Create pages directory
working-directory: ./packages/hpke-js
run: |
mkdir test/runtimes/browsers/pages/core
cp -rf ../core/test/runtimes/browsers/pages/* test/runtimes/browsers/pages/core
mkdir test/runtimes/browsers/pages/chacha20poly1305
cp -rf ../chacha20poly1305/test/runtimes/browsers/pages/* test/runtimes/browsers/pages/chacha20poly1305
mkdir test/runtimes/browsers/pages/dhkem-x25519
cp -rf ../dhkem-x25519/test/runtimes/browsers/pages/* test/runtimes/browsers/pages/dhkem-x25519
mkdir test/runtimes/browsers/pages/dhkem-x448
cp -rf ../dhkem-x448/test/runtimes/browsers/pages/* test/runtimes/browsers/pages/dhkem-x448
mkdir test/runtimes/browsers/pages/hybridkem-x25519-kyber768
cp -rf ../hybridkem-x25519-kyber768/test/runtimes/browsers/pages/* test/runtimes/browsers/pages/hybridkem-x25519-kyber768
mkdir test/runtimes/browsers/pages/hybridkem-x-wing
cp -rf ../hybridkem-x-wing/test/runtimes/browsers/pages/* test/runtimes/browsers/pages/hybridkem-x-wing
mkdir test/runtimes/browsers/pages/ml-kem
cp -rf ../ml-kem/test/runtimes/browsers/pages/* test/runtimes/browsers/pages/ml-kem
mkdir test/runtimes/browsers/pages/dhkem-secp256k1
cp -rf ../dhkem-secp256k1/test/runtimes/browsers/pages/* test/runtimes/browsers/pages/dhkem-secp256k1
- name: Build docs for @hpke/common
working-directory: ./packages/common
run: |
npx typedoc --name "@hpke/common" --out ../hpke-js/test/runtimes/browsers/pages/common/docs mod.ts
deno task minify > ../hpke-js/test/runtimes/browsers/pages/core/src/hpke-common.js
deno task minify > ../hpke-js/test/runtimes/browsers/pages/dhkem-x25519/src/hpke-common.js
deno task minify > ../hpke-js/test/runtimes/browsers/pages/dhkem-x448/src/hpke-common.js
deno task minify > ../hpke-js/test/runtimes/browsers/pages/chacha20poly1305/src/hpke-common.js
deno task minify > ../hpke-js/test/runtimes/browsers/pages/hybridkem-x25519-kyber768/src/hpke-common.js
deno task minify > ../hpke-js/test/runtimes/browsers/pages/hybridkem-x-wing/src/hpke-common.js
deno task minify > ../hpke-js/test/runtimes/browsers/pages/ml-kem/src/hpke-common.js
deno task minify > ../hpke-js/test/runtimes/browsers/pages/dhkem-secp256k1/src/hpke-common.js
- name: Build docs for @hpke/core
working-directory: ./packages/core
run: |
npx typedoc --name "@hpke/core $(git describe --tags --abbrev=0)" --out ../hpke-js/test/runtimes/browsers/pages/core/docs mod.ts
deno task minify > ../hpke-js/test/runtimes/browsers/pages/core/src/hpke-core.js
deno task minify > ../hpke-js/test/runtimes/browsers/pages/dhkem-x25519/src/hpke-core.js
deno task minify > ../hpke-js/test/runtimes/browsers/pages/dhkem-x448/src/hpke-core.js
deno task minify > ../hpke-js/test/runtimes/browsers/pages/chacha20poly1305/src/hpke-core.js
deno task minify > ../hpke-js/test/runtimes/browsers/pages/hybridkem-x25519-kyber768/src/hpke-core.js
deno task minify > ../hpke-js/test/runtimes/browsers/pages/hybridkem-x-wing/src/hpke-core.js
deno task minify > ../hpke-js/test/runtimes/browsers/pages/ml-kem/src/hpke-core.js
deno task minify > ../hpke-js/test/runtimes/browsers/pages/dhkem-secp256k1/src/hpke-core.js
- name: Build docs for @hpke/chacha20poly1305
working-directory: ./packages/chacha20poly1305
run: |
npx typedoc --name "@hpke/chacha20poly1305 $(git describe --tags --abbrev=0)" --out ../hpke-js/test/runtimes/browsers/pages/chacha20poly1305/docs mod.ts
deno task minify > ../hpke-js/test/runtimes/browsers/pages/chacha20poly1305/src/hpke-chacha20poly1305.js
- name: Build docs for @hpke/dhkem-x25519
working-directory: ./packages/dhkem-x25519
run: |
npx typedoc --name "@hpke/dhkem-x25519 $(git describe --tags --abbrev=0)" --out ../hpke-js/test/runtimes/browsers/pages/dhkem-x25519/docs mod.ts
deno task minify > ../hpke-js/test/runtimes/browsers/pages/dhkem-x25519/src/hpke-dhkem-x25519.js
- name: Build docs for @hpke/dhkem-x448
working-directory: ./packages/dhkem-x448
run: |
npx typedoc --name "@hpke/dhkem-x448 $(git describe --tags --abbrev=0)" --out ../hpke-js/test/runtimes/browsers/pages/dhkem-x448/docs mod.ts
deno task minify > ../hpke-js/test/runtimes/browsers/pages/dhkem-x448/src/hpke-dhkem-x448.js
- name: Build docs for @hpke/hybridkem-x25519-kyber768
working-directory: ./packages/hybridkem-x25519-kyber768
run: |
npx typedoc --name "@hpke/hybridkem-x25519-kyber768 $(git describe --tags --abbrev=0)" --out ../hpke-js/test/runtimes/browsers/pages/hybridkem-x25519-kyber768/docs mod.ts
deno task minify > ../hpke-js/test/runtimes/browsers/pages/hybridkem-x25519-kyber768/src/hpke-hybridkem-x25519-kyber768.js
- name: Build docs for @hpke/dhkem-secp256k1
working-directory: ./packages/dhkem-secp256k1
run: |
npx typedoc --name "@hpke/dhkem-secp256k1 $(git describe --tags --abbrev=0)" --out ../hpke-js/test/runtimes/browsers/pages/dhkem-secp256k1/docs mod.ts
deno task minify > ../hpke-js/test/runtimes/browsers/pages/dhkem-secp256k1/src/hpke-dhkem-secp256k1.js
- name: Build docs for @hpke/hybridkem-x-wing
working-directory: ./packages/hybridkem-x-wing
run: |
npx typedoc --name "@hpke/hybridkem-x-wing" --out ../hpke-js/test/runtimes/browsers/pages/hybridkem-x-wing/docs mod.ts
deno task minify > ../hpke-js/test/runtimes/browsers/pages/hybridkem-x-wing/src/hpke-hybridkem-x-wing.js
- name: Build docs for @hpke/ml-kem
working-directory: ./packages/ml-kem
run: |
npx typedoc --name "@hpke/ml-kem" --out ../hpke-js/test/runtimes/browsers/pages/ml-kem/docs mod.ts
deno task minify > ../hpke-js/test/runtimes/browsers/pages/ml-kem/src/hpke-ml-kem.js
- name: Build docs for @hpke/hpke-js
working-directory: ./packages/hpke-js
run: |
npx typedoc --name "@hpke/hpke-js $(git describe --tags --abbrev=0)" --out test/runtimes/browsers/pages/docs mod.ts
deno task minify > test/runtimes/browsers/pages/src/hpke.js
- uses: peaceiris/actions-gh-pages@v3
with:
deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }}
publish_dir: ./packages/hpke-js/test/runtimes/browsers/pages
playwright-test:
needs: pages
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- uses: microsoft/playwright-github-action@v1
- working-directory: ./packages/core/test/runtimes/browsers
run: npm install && npx playwright install && npx playwright test
- working-directory: ./packages/dhkem-x25519/test/runtimes/browsers
run: npm install && npx playwright install && npx playwright test
- working-directory: ./packages/dhkem-x448/test/runtimes/browsers
run: npm install && npx playwright install && npx playwright test
- working-directory: ./packages/chacha20poly1305/test/runtimes/browsers
run: npm install && npx playwright install && npx playwright test
- working-directory: ./packages/hybridkem-x25519-kyber768/test/runtimes/browsers
run: npm install && npx playwright install && npx playwright test
- working-directory: ./packages/hybridkem-x-wing/test/runtimes/browsers
run: npm install && npx playwright install && npx playwright test
- working-directory: ./packages/ml-kem/test/runtimes/browsers
run: npm install && npx playwright install && npx playwright test
- working-directory: ./packages/dhkem-secp256k1/test/runtimes/browsers
run: npm install && npx playwright install && npx playwright test
- working-directory: ./packages/hpke-js/test/runtimes/browsers
run: npm install && npx playwright install && npx playwright test