Add GitHub Actions workflows and optimize build performance
- Add release.yml for multi-platform binary builds (Linux, macOS, Windows) - Add gh-pages-fast.yml for fast deployment using pre-built binaries - Add build-binary.yml for standalone binary artifact creation - Optimize Cargo.toml with build profiles and reduced tokio features - Remove 26MB of unused Font Awesome assets (kept only essential files) - Font Awesome reduced from 28MB to 1.2MB 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
		
							
								
								
									
										92
									
								
								.github/workflows/disabled/gh-pages-fast.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								.github/workflows/disabled/gh-pages-fast.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,92 @@
 | 
			
		||||
name: github pages (fast)
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  push:
 | 
			
		||||
    branches:
 | 
			
		||||
    - main
 | 
			
		||||
    paths-ignore:
 | 
			
		||||
      - 'src/**'
 | 
			
		||||
      - 'Cargo.toml'
 | 
			
		||||
      - 'Cargo.lock'
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  build-deploy:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    permissions:
 | 
			
		||||
      contents: write
 | 
			
		||||
      pages: write
 | 
			
		||||
      id-token: write
 | 
			
		||||
    steps:
 | 
			
		||||
    - uses: actions/checkout@v4
 | 
			
		||||
    
 | 
			
		||||
    - name: Cache ailog binary
 | 
			
		||||
      uses: actions/cache@v4
 | 
			
		||||
      with:
 | 
			
		||||
        path: ./bin
 | 
			
		||||
        key: ailog-bin-${{ runner.os }}
 | 
			
		||||
        restore-keys: |
 | 
			
		||||
          ailog-bin-${{ runner.os }}
 | 
			
		||||
    
 | 
			
		||||
    - name: Setup ailog binary
 | 
			
		||||
      run: |
 | 
			
		||||
        # Get expected version from Cargo.toml
 | 
			
		||||
        EXPECTED_VERSION=$(grep '^version' Cargo.toml | cut -d'"' -f2)
 | 
			
		||||
        echo "Expected version from Cargo.toml: $EXPECTED_VERSION"
 | 
			
		||||
        
 | 
			
		||||
        # Check current binary version if exists
 | 
			
		||||
        if [ -f "./bin/ailog" ]; then
 | 
			
		||||
          CURRENT_VERSION=$(./bin/ailog --version 2>/dev/null || echo "unknown")
 | 
			
		||||
          echo "Current binary version: $CURRENT_VERSION"
 | 
			
		||||
        else
 | 
			
		||||
          CURRENT_VERSION="none"
 | 
			
		||||
          echo "No binary found"
 | 
			
		||||
        fi
 | 
			
		||||
        
 | 
			
		||||
        # Check OS
 | 
			
		||||
        OS="${{ runner.os }}"
 | 
			
		||||
        echo "Runner OS: $OS"
 | 
			
		||||
        
 | 
			
		||||
        # Use pre-packaged binary if version matches or extract from tar.gz
 | 
			
		||||
        if [ "$CURRENT_VERSION" = "$EXPECTED_VERSION" ]; then
 | 
			
		||||
          echo "Binary is up to date"
 | 
			
		||||
          chmod +x ./bin/ailog
 | 
			
		||||
        elif [ "$OS" = "Linux" ] && [ -f "./bin/ailog-linux-x86_64.tar.gz" ]; then
 | 
			
		||||
          echo "Extracting ailog from pre-packaged tar.gz..."
 | 
			
		||||
          cd bin
 | 
			
		||||
          tar -xzf ailog-linux-x86_64.tar.gz
 | 
			
		||||
          chmod +x ailog
 | 
			
		||||
          cd ..
 | 
			
		||||
          
 | 
			
		||||
          # Verify extracted version
 | 
			
		||||
          EXTRACTED_VERSION=$(./bin/ailog --version 2>/dev/null || echo "unknown")
 | 
			
		||||
          echo "Extracted binary version: $EXTRACTED_VERSION"
 | 
			
		||||
          
 | 
			
		||||
          if [ "$EXTRACTED_VERSION" != "$EXPECTED_VERSION" ]; then
 | 
			
		||||
            echo "Warning: Binary version mismatch. Expected $EXPECTED_VERSION but got $EXTRACTED_VERSION"
 | 
			
		||||
          fi
 | 
			
		||||
        else
 | 
			
		||||
          echo "Error: No suitable binary found for OS: $OS"
 | 
			
		||||
          exit 1
 | 
			
		||||
        fi
 | 
			
		||||
      
 | 
			
		||||
    - name: Setup Hugo
 | 
			
		||||
      uses: peaceiris/actions-hugo@v3
 | 
			
		||||
      with:
 | 
			
		||||
        hugo-version: "0.139.2"
 | 
			
		||||
        extended: true
 | 
			
		||||
        
 | 
			
		||||
    - name: Build with ailog
 | 
			
		||||
      env: 
 | 
			
		||||
        TZ: "Asia/Tokyo"
 | 
			
		||||
      run: |
 | 
			
		||||
          # Use pre-built ailog binary instead of cargo build
 | 
			
		||||
          cd my-blog
 | 
			
		||||
          ../bin/ailog build
 | 
			
		||||
          touch ./public/.nojekyll
 | 
			
		||||
          
 | 
			
		||||
    - name: Deploy
 | 
			
		||||
      uses: peaceiris/actions-gh-pages@v3
 | 
			
		||||
      with:
 | 
			
		||||
        github_token: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
        publish_dir: ./my-blog/public
 | 
			
		||||
        publish_branch: gh-pages
 | 
			
		||||
		Reference in New Issue
	
	Block a user