name: Build Beta Docker Image

on:
    push:
        branches:
            - dev
    pull_request:
        branches:
            - dev

jobs:
    build:
        runs-on: ubuntu-latest
        steps:
            - name: Checkout code
              uses: actions/checkout@v4
              
            - name: Set up QEMU
              uses: docker/setup-qemu-action@v3
              with:
                platforms: linux/amd64,linux/arm64/v8
                
            - name: Set up Node.js
              uses: actions/setup-node@v4
              with:
                  node-version: '18'

            - name: Build frontend
              working-directory: ./frontend
              run: |
                  npm ci
                  npm run build

            - name: Prepare dist directory
              run: |
                  mkdir -p dist/backend dist/static
                  cp -r frontend/dist/* dist/static/
                  cp -r backend/* dist/backend/
                  cp backend/requirements.txt dist/

            - name: Set up Docker Buildx
              uses: docker/setup-buildx-action@v3

            - name: Login to Docker Hub
              if: github.event_name != 'pull_request'
              uses: docker/login-action@v3
              with:
                  username: ${{ secrets.DOCKERHUB_USERNAME }}
                  password: ${{ secrets.DOCKERHUB_TOKEN }}

            - name: Build and push
              uses: docker/build-push-action@v5
              with:
                  platforms: linux/amd64,linux/arm64/v8
                  context: .
                  push: ${{ github.event_name != 'pull_request' }}
                  tags: santiagosayshey/profilarr:beta
