Skip to content

Create npm release 0.6.0 #138

Create npm release 0.6.0

Create npm release 0.6.0 #138

Workflow file for this run

name: CI
on:
push:
pull_request:
env:
PYTHON_VERSION: '3.11'
jobs:
test-native:
runs-on: ${{matrix.os}}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macOS-latest, windows-latest]
node-version: [18.x, 20.x, 22.x, 23.x]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
- name: Set up Node.js ${{matrix.node-version}}
uses: actions/setup-node@v4
with:
node-version: ${{matrix.node-version}}
# npm<10.2.3 ships a version of node-gyp that doesn't support Python>3.11.
- name: Set up Python ${{env.PYTHON_VERSION}}
uses: actions/setup-python@v5
with:
python-version: ${{env.PYTHON_VERSION}}
- name: Build
run: npm install --pqclean-backend=native
- name: Test
run: npm test
build-wasm:
runs-on: ubuntu-latest
env:
NODE_VERSION: 20.x
EMSDK_VERSION: 3.1.72
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
- name: Set up Node.js ${{env.NODE_VERSION}}
uses: actions/setup-node@v4
with:
node-version: ${{env.NODE_VERSION}}
- name: Set up Emscripten SDK ${{env.EMSDK_VERSION}}
uses: mymindstorm/setup-emsdk@v14
with:
version: ${{env.EMSDK_VERSION}}
- name: Install dependencies
run: npm install --ignore-scripts
- name: Build WebAssembly module
run: npm run build-wasm
- name: Upload build output
uses: actions/upload-artifact@v4
with:
name: wasm-gen
path: |
wasm/gen
if-no-files-found: error
test-wasm:
needs: build-wasm
runs-on: ${{matrix.os}}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macOS-latest, windows-latest]
node-version: [18.x, 20.x, 22.x, 23.x]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node.js ${{matrix.node-version}}
uses: actions/setup-node@v4
with:
node-version: ${{matrix.node-version}}
- name: Download WebAssembly module
uses: actions/download-artifact@v4
with:
name: wasm-gen
path: wasm/gen
- name: Install
run: npm install --pqclean-backend=wasm
- name: Test
run: npm test
build-web:
needs: build-wasm
runs-on: ubuntu-latest
env:
NODE_VERSION: 20.x
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node.js ${{env.NODE_VERSION}}
uses: actions/setup-node@v4
with:
node-version: ${{env.NODE_VERSION}}
- name: Download WebAssembly module
uses: actions/download-artifact@v4
with:
name: wasm-gen
path: wasm/gen
- name: Build web distribution
run: npm run build-web
- name: Upload build output
uses: actions/upload-artifact@v4
with:
name: web-dist
path: |
web/dist
if-no-files-found: error
test-web:
needs: build-web
runs-on: ${{matrix.os}}
strategy:
fail-fast: false
matrix:
mode: [deno, chrome]
os: [ubuntu-latest, macOS-latest, windows-latest]
env:
NODE_VERSION: 20.x
DENO_VERSION: 2.1.x
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
- name: Set up Node.js ${{env.NODE_VERSION}}
uses: actions/setup-node@v4
with:
node-version: ${{env.NODE_VERSION}}
- name: Set up Deno ${{env.DENO_VERSION}}
if: matrix.mode == 'deno'
uses: denoland/setup-deno@v2
with:
deno-version: ${{env.DENO_VERSION}}
- name: Download web distribution
uses: actions/download-artifact@v4
with:
name: web-dist
path: web/dist
# npm<10.2.3 ships a version of node-gyp that doesn't support Python>3.11.
- name: Set up Python ${{env.PYTHON_VERSION}}
uses: actions/setup-python@v5
with:
python-version: ${{env.PYTHON_VERSION}}
- name: Install
run: npm install
- name: Test
run: npm run test-web ${{matrix.mode}}