Skip to content

Merge pull request #260 from DecimalTurn/dev-update-order #1106

Merge pull request #260 from DecimalTurn/dev-update-order

Merge pull request #260 from DecimalTurn/dev-update-order #1106

name: Test and Build
on:
push:
branches:
- latest
paths-ignore:
- '**.md'
pull_request:
paths-ignore:
- '**.md'
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
include:
- node-version: 22.x
- node-version: 24.x
- node-version: 26.x
benchmark: true
steps:
- name: Checkout
uses: actions/checkout@v7
with:
submodules: true
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node-version }}
- name: Setup pnpm
uses: pnpm/action-setup@v6
with:
run_install: false
# Protection Against Supply Chain Attacks
- uses: socketdev/action@ba6de6cc0565af1f42295590380973573297e31f # v1.3.2
with:
mode: firewall
firewall-version: latest
- name: Install
run: sfw pnpm install --frozen-lockfile
env:
CI: true
- name: Typecheck
run: pnpm run typecheck
- name: Lint
run: pnpm run lint
- name: Build
run: pnpm run build
- name: Install Playwright browsers
run: pnpm run playwright:install
- name: Test
run: pnpm run test:all
- name: Specs
run: pnpm run specs
- name: Setup Go
uses: actions/setup-go@v7
with:
go-version: stable
- name: Install toml-test
run: go install github.com/toml-lang/toml-test/v2/cmd/toml-test@v2.1.0
- name: Go Test (toml-test)
run: pnpm run test:go
# - name: Benchmark (CI samples)
# if: matrix.benchmark
# run: pnpm run benchmark:ci
# - name: Check Performance
# if: matrix.benchmark
# run: node benchmark/check-performance.mjs
# - name: Write Benchmark Summary
# if: always() && matrix.benchmark
# run: |
# if [ -f benchmark-parse.md ]; then
# echo "## Parse Benchmark" >> $GITHUB_STEP_SUMMARY
# cat benchmark-parse.md >> $GITHUB_STEP_SUMMARY
# echo "" >> $GITHUB_STEP_SUMMARY
# fi
# if [ -f benchmark-stringify.md ]; then
# echo "## Stringify Benchmark" >> $GITHUB_STEP_SUMMARY
# cat benchmark-stringify.md >> $GITHUB_STEP_SUMMARY
# fi
- name: Create build artifacts
uses: actions/upload-artifact@v7
with:
path: dist/
name: dist-${{ matrix.node-version }}