name: Build Extensions

on:
  push:
    branches: [ master ]

jobs:
  build-extensions:
    runs-on: ubuntu-latest
    
    strategy:
      matrix:
        site: [furbooru, derpibooru, tantabus]
    
    steps:
    - name: Checkout repository
      uses: actions/checkout@v4
      
    - name: Setup Node.js
      uses: actions/setup-node@v4
      with:
        node-version: '20'
        cache: 'npm'
        
    - name: Install dependencies
      run: npm ci
      
    - name: Build extension for ${{ matrix.site }}
      run: |
        if [ "${{ matrix.site }}" = "furbooru" ]; then
          npm run build
        else
          npm run build:${{ matrix.site }}
        fi
        
    - name: Create extension zip
      run: |
        cd build
        zip -r "../${{ matrix.site }}-tagging-assistant-extension.zip" .
        
    - name: Upload extension artifact
      uses: actions/upload-artifact@v4
      with:
        name: ${{ matrix.site }}-tagging-assistant-extension
        path: ${{ matrix.site }}-tagging-assistant-extension.zip
        retention-days: 30

  create-release-artifacts:
    runs-on: ubuntu-latest
    needs: build-extensions
    
    steps:
    - name: Download all artifacts
      uses: actions/download-artifact@v4
      with:
        path: artifacts
        
    - name: Create combined artifact
      uses: actions/upload-artifact@v4
      with:
        name: all-extensions
        path: artifacts/
        retention-days: 90
