78 lines
2.3 KiB
YAML
78 lines
2.3 KiB
YAML
# Copyright 2026 Google LLC
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# https://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
name: Test
|
|
|
|
on:
|
|
push:
|
|
branches: ['**']
|
|
pull_request:
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- uses: oven-sh/setup-bun@v2
|
|
with:
|
|
bun-version: 1.3.9 # Must match root package.json "packageManager"
|
|
|
|
- name: Install dependencies
|
|
run: bun install
|
|
|
|
- name: Lint
|
|
run: bun run lint
|
|
|
|
- name: Run tests
|
|
run: bun run test
|
|
|
|
- name: Build CLI
|
|
run: bun run build
|
|
|
|
- name: Node.js Smoke Test
|
|
run: node packages/cli/dist/index.js lint examples/atmospheric-glass/DESIGN.md
|
|
|
|
- name: Tarball Smoke Test
|
|
run: |
|
|
cd packages/cli && npm pack
|
|
mkdir -p /tmp/designmd-smoke && cd /tmp/designmd-smoke
|
|
npm init -y
|
|
npm install $GITHUB_WORKSPACE/packages/cli/google-design.md-*.tgz
|
|
echo -e '---\ncolors:\n primary: "#0000ff"\n---' > DESIGN.md
|
|
npx design.md lint DESIGN.md
|
|
npx design.md spec > /dev/null
|
|
node -e "import('@google/design.md/linter').then(m => console.log('OK:', Object.keys(m).length, 'exports'))"
|
|
|
|
npm-registry-smoke-windows:
|
|
runs-on: windows-latest
|
|
steps:
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: lts/*
|
|
registry-url: https://registry.npmjs.org
|
|
|
|
- name: Install @google/design.md from the public npm registry
|
|
shell: bash
|
|
run: |
|
|
set -euo pipefail
|
|
mkdir -p "$RUNNER_TEMP/npm-registry-smoke"
|
|
cd "$RUNNER_TEMP/npm-registry-smoke"
|
|
npm init -y
|
|
npm install "@google/design.md@latest"
|
|
node node_modules/@google/design.md/dist/index.js spec --rules-only --format json > /dev/null
|
|
node -e "import('@google/design.md/linter').then(m => console.log('OK:', Object.keys(m).length, 'exports'))"
|
|
|