Skip to content
This repository was archived by the owner on Oct 25, 2025. It is now read-only.

πŸ”’(deps): Bump @astrojs/preact from 4.1.0 to 4.1.1 #33

πŸ”’(deps): Bump @astrojs/preact from 4.1.0 to 4.1.1

πŸ”’(deps): Bump @astrojs/preact from 4.1.0 to 4.1.1 #33

Workflow file for this run

name: πŸš€ CI/CD - Build & Validate (Cloudflare Pages Deploy)
on:
push:
branches:
- main
paths-ignore:
- '**.md'
- '.editorconfig'
- '.gitignore'
- 'docs/**'
pull_request:
branches:
- main
paths-ignore:
- '**.md'
- '.editorconfig'
- '.gitignore'
- 'docs/**'
workflow_dispatch:
permissions:
contents: write # Permitir commits y push
jobs:
# πŸ§ͺ Testing & Quality Assurance
test-and-validate:
name: πŸ” Quality Assurance
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: πŸ“₯ Checkout code
uses: actions/checkout@v5.0.0
- name: βš™οΈ Set up Node.js 22.x
uses: actions/setup-node@v4.4.0
with:
node-version: 22.x
- name: πŸš€ Set up Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: πŸ“¦ Install dependencies
run: bun install --frozen-lockfile
- name: πŸ”Ž TypeScript validation
run: |
echo "πŸ” Running TypeScript check..."
bun run type-check
echo "βœ… TypeScript validation passed!"
- name: 🧹 Biome code quality
run: |
echo "🧹 Running Biome linting..."
bun run lint
echo "βœ… Code quality check completed!"
- name: πŸ’„ Biome formatting check
run: |
echo "πŸ’„ Checking code formatting..."
bun run format:check
echo "βœ… Code formatting is consistent!"
- name: πŸ—οΈ Build validation
run: |
echo "πŸ—οΈ Building project..."
bun run build
echo "βœ… Build completed successfully!"
- name: πŸ“Š Build metrics
run: |
echo "πŸ“Š Build Metrics:"
echo "πŸ“ Build output size:"
du -sh dist/
echo "πŸ“„ Generated pages:"
find dist -name "*.html" | wc -l | xargs echo "HTML files:"
echo "🎨 CSS files:"
find dist -name "*.css" | wc -l | xargs echo "CSS files:"
echo "⚑ JS files:"
find dist -name "*.js" | wc -l | xargs echo "JS files:"
# πŸ”§ Auto-fix workflow (runs only on test failures)
auto-fix:
name: πŸ€– Auto-fix Issues
runs-on: ubuntu-latest
needs: test-and-validate
if: failure() && github.event_name == 'push' && github.ref == 'refs/heads/main'
timeout-minutes: 10
steps:
- name: πŸ“₯ Checkout code
uses: actions/checkout@v5.0.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
fetch-depth: 0
- name: βš™οΈ Set up Node.js 22.x
uses: actions/setup-node@v4.4.0
with:
node-version: 22.x
- name: πŸš€ Set up Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: πŸ“¦ Install dependencies
run: bun install --frozen-lockfile
- name: πŸ”§ Auto-fix Biome issues
run: |
echo "πŸ”§ Attempting to auto-fix Biome issues..."
bun run lint:fix || true
echo "βœ… Biome auto-fix completed!"
- name: 🎨 Auto-format with Biome
run: |
echo "🎨 Auto-formatting code with Biome..."
bun run format
echo "βœ… Biome formatting completed!"
- name: πŸ“ Check for changes
id: verify-changed-files
run: |
if [ -n "$(git status --porcelain)" ]; then
echo "changed=true" >> $GITHUB_OUTPUT
echo "βœ… Changes detected after auto-fix"
else
echo "changed=false" >> $GITHUB_OUTPUT
echo "ℹ️ No changes after auto-fix"
fi
- name: πŸš€ Commit and push auto-fixes
if: steps.verify-changed-files.outputs.changed == 'true'
run: |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git add .
git commit -m "πŸ€– Auto-fix: Biome linting and formatting
- 🧹 Applied Biome auto-fixes
- πŸ’„ Applied Biome formatting
- πŸ”„ Automated by GitHub Actions
[skip ci]"
git push
- name: βœ… Re-run validation after auto-fix
if: steps.verify-changed-files.outputs.changed == 'true'
run: |
echo "πŸ”„ Re-running validation after auto-fix..."
bun run validate
echo "βœ… Validation passed after auto-fix!"
# πŸ“ˆ Build Verification (only after successful tests)
build-verification:
name: πŸ—οΈ Build Verification
runs-on: ubuntu-latest
needs: test-and-validate
if: success()
timeout-minutes: 15
steps:
- name: πŸ“₯ Checkout code
uses: actions/checkout@v5.0.0
- name: βš™οΈ Set up Node.js 22.x
uses: actions/setup-node@v4.4.0
with:
node-version: 22.x
- name: πŸš€ Set up Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: πŸ“¦ Install dependencies
run: bun install --frozen-lockfile
- name: πŸ—οΈ Production build
run: |
echo "πŸ—οΈ Creating production build..."
npm run build:prod
echo "βœ… Production build completed!"
- name: πŸ“Š Performance analysis
run: |
echo "πŸ“Š Analyzing build performance..."
echo "πŸ“ Total build size:"
du -sh dist/
echo "πŸ—‚οΈ File breakdown:"
find dist -type f -exec ls -lh {} \; | awk '{print $5 " " $9}' | sort -hr | head -20
echo "⚑ Bundle analysis complete!"
- name: 🎯 Build artifacts summary
run: |
echo "🎯 Build Summary:"
echo "πŸ“„ HTML pages: $(find dist -name '*.html' | wc -l)"
echo "🎨 CSS files: $(find dist -name '*.css' | wc -l)"
echo "⚑ JS files: $(find dist -name '*.js' | wc -l)"
echo "πŸ–ΌοΈ Images: $(find dist -name '*.png' -o -name '*.jpg' -o -name '*.jpeg' -o -name '*.svg' -o -name '*.webp' | wc -l)"
echo "πŸ“¦ Other assets: $(find dist -type f ! -name '*.html' ! -name '*.css' ! -name '*.js' ! -name '*.png' ! -name '*.jpg' ! -name '*.jpeg' ! -name '*.svg' ! -name '*.webp' | wc -l)"