name: Release
on:
  push:
    branches:
      - "main"
    paths:
      - "backend/**"
      - "frontend/**"
      - ".gitea/workflows/release.yml"
      - "release.config.cjs"

env:
  GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}

permissions:
  contents: read

jobs:
  release:
    runs-on: ubuntu-latest
    name: Release
    permissions:
      contents: write
      issues: write
      pull-requests: write
      id-token: write
    steps:
      - name: Create Release
        uses: https://git.kjan.de/actions/semantic-release@main
        with:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}

  build-backend-image:
    needs: release
    runs-on: ubuntu-latest
    name: Build Backend Image
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          fetch-depth: 0 # Ensure full history is available
      - name: Extract tag
        run: |
          TAG=$(git describe --tags --abbrev=0)
          echo "TAG=$TAG" >> $GITHUB_ENV
      - name: Checkout
        uses: actions/checkout@v4
      - name: Login
        uses: docker/login-action@v3
        with:
          registry: git.kjan.de
          username: ${{ secrets.DOCKER_USER }}
          password: ${{ secrets.DOCKER_PASS }}
      - name: Build and push
        uses: docker/build-push-action@v6
        with:
          context: backend/
          file: backend/.docker/Dockerfile
          push: true
          tags: |
            git.kjan.de/szut/casino-backend:latest
            git.kjan.de/szut/casino-backend:${{ env.TAG }}

  build-frontend-image:
    needs: release
    runs-on: ubuntu-latest
    name: Build Frontend Image
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          fetch-depth: 0 # Ensure full history is available
      - name: Extract tag
        run: |
          TAG=$(git describe --tags --abbrev=0)
          echo "TAG=$TAG" >> $GITHUB_ENV
      - name: Checkout
        uses: actions/checkout@v4
      - name: Login
        uses: docker/login-action@v3
        with:
          registry: git.kjan.de
          username: ${{ secrets.DOCKER_USER }}
          password: ${{ secrets.DOCKER_PASS }}
      - name: Build and push
        uses: docker/build-push-action@v6
        with:
          context: frontend/
          file: frontend/.docker/Dockerfile
          push: true
          tags: |
            git.kjan.de/szut/casino-frontend:latest
            git.kjan.de/szut/casino-frontend:${{ env.TAG }}
