name: Build Release Docker Image

on:
    push:
        tags:
            - 'v*'

jobs:
    build:
        runs-on: ubuntu-latest
        steps:
            - name: Checkout code
              uses: actions/checkout@v4

            - name: Get tag
              id: tag
              run: echo "tag=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT

            - 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
              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:
                  context: .
                  push: true
                  tags: |
                      santiagosayshey/profilarr:latest
                      santiagosayshey/profilarr:${{ steps.tag.outputs.tag }}
