Skip to content

chore(deps): bump the github-actions group with 2 updates (#14) #85

chore(deps): bump the github-actions group with 2 updates (#14)

chore(deps): bump the github-actions group with 2 updates (#14) #85

Workflow file for this run

name: CI
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
jobs:
lint:
name: Lint & Format Check
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '24'
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Run ESLint
run: bun run lint
- name: Check code formatting
run: bun run format:check
test:
name: Test
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '24'
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Run type checking
run: bun run typecheck
- name: Run tests
run: bun run test:coverage
- name: Build package
run: bun run build:package
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v6
with:
use_oidc: true
files: ./packages/astro-gravatar/coverage/lcov.info
flags: unittests
name: codecov-umbrella
docs:
name: Docs Build
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '24'
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Validate Cloudflare Pages build
run: bun run pages:check
security:
name: Security Scan
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '24'
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Run security audit
# Ignore currently unpatched transitive advisories from latest Astro/eslint dependency chains.
run: >
bun audit --audit-level high
--ignore=GHSA-25h7-pfq9-p65f
--ignore=GHSA-rf6f-7fwh-wjgh
--ignore=GHSA-c2c7-rcm5-vvqj
--ignore=GHSA-mw96-cpmx-2vgc
pack-test:
name: Test Package Pack
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '24'
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Build package
run: bun run build:package
- name: Test package pack
run: |
cd packages/astro-gravatar
bun pm pack --dry-run
- name: Test version management
run: |
cd packages/astro-gravatar
bun pm pkg get name version
bundle-size:
name: Bundle Size Check
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '24'
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Check bundle size
run: |
cd packages/astro-gravatar
# Bundle the main utility (gravatar.ts) which represents core runtime code
bun build src/lib/gravatar.ts --outfile=/tmp/bundle.js --minify
SIZE=$(stat -c%s /tmp/bundle.js)
echo "Bundle size (minified): $SIZE bytes ($(($SIZE / 1024))KB)"
if [ $SIZE -gt 50000 ]; then
echo "Error: Bundle size exceeds 50KB limit"
exit 1
fi
echo "✅ Bundle size check passed!"