kind: pipeline
type: docker
name: default

steps:
  # Build Backend Docker Image
  - name: build-backend
    image: plugins/docker
    settings:
      repo: registry.local.nothaft.cloud/picpeak-backend
      tags: 
        - latest
        - ${DRONE_COMMIT_SHA:0:8}
        - ${DRONE_BRANCH}-latest
      dockerfile: backend/Dockerfile
      context: backend/
      registry: registry.local.nothaft.cloud
      build_args:
        - VERSION=${DRONE_TAG:-dev}
      
  # Build Frontend Docker Image
  - name: build-frontend
    image: plugins/docker
    settings:
      repo: registry.local.nothaft.cloud/picpeak-frontend
      tags: 
        - latest
        - ${DRONE_COMMIT_SHA:0:8}
        - ${DRONE_BRANCH}-latest
      dockerfile: frontend/Dockerfile
      context: frontend/
      registry: registry.local.nothaft.cloud
      build_args:
        - VERSION=${DRONE_TAG:-dev}
        - VITE_API_URL=${VITE_API_URL:-/api}

trigger:
  branch:
    - main
    - develop
  event:
    - push
    - pull_request

---
kind: pipeline
type: docker
name: release

steps:
  # Build Backend Release
  - name: build-backend-release
    image: plugins/docker
    settings:
      repo: registry.local.nothaft.cloud/picpeak-backend
      tags:
        - ${DRONE_TAG}
        - latest
      dockerfile: backend/Dockerfile
      context: backend/
      registry: registry.local.nothaft.cloud
      
  # Build Frontend Release
  - name: build-frontend-release
    image: plugins/docker
    settings:
      repo: registry.local.nothaft.cloud/picpeak-frontend
      tags:
        - ${DRONE_TAG}
        - latest
      dockerfile: frontend/Dockerfile
      context: frontend/
      registry: registry.local.nothaft.cloud

  # -------- NEW: Publish Docker images to GitHub Container Registry --------
  - name: push-backend-ghcr
    image: plugins/docker
    settings:
      repo: ghcr.io/the-luap/picpeak-backend
      tags:
        - ${DRONE_TAG}
        - latest
      dockerfile: backend/Dockerfile
      context: backend/
      registry: ghcr.io
      username:
        from_secret: GITHUB_USERNAME
      password:
        from_secret: GITHUB_TOKEN
      build_args:
        - VERSION=${DRONE_TAG}

  - name: push-frontend-ghcr
    image: plugins/docker
    settings:
      repo: ghcr.io/the-luap/picpeak-frontend
      tags:
        - ${DRONE_TAG}
        - latest
      dockerfile: frontend/Dockerfile
      context: frontend/
      registry: ghcr.io
      username:
        from_secret: GITHUB_USERNAME
      password:
        from_secret: GITHUB_TOKEN
      build_args:
        - VERSION=${DRONE_TAG}
        - VITE_API_URL=${VITE_API_URL:-/api}

  # -------- NEW: Create GitHub Release --------
  - name: github-release
    image: plugins/github-release
    when:
      event: tag
    settings:
      api_key:
        from_secret: GITHUB_TOKEN
      files: []
      title: PicPeak ${DRONE_TAG}
      note: |
        # PicPeak ${DRONE_TAG}

        ## 🐳 Docker Images

        This release includes Docker images published to GitHub Container Registry:

        ```bash
        # Backend
        docker pull ghcr.io/the-luap/picpeak-backend:${DRONE_TAG}
        docker pull ghcr.io/the-luap/picpeak-backend:latest

        # Frontend
        docker pull ghcr.io/the-luap/picpeak-frontend:${DRONE_TAG}
        docker pull ghcr.io/the-luap/picpeak-frontend:latest
        ```

        ## 📦 What's New

        See the [README](https://github.com/the-luap/picpeak#readme) for features and documentation.

        ## 🚀 Quick Start

        ```bash
        # Clone and deploy
        git clone https://github.com/the-luap/picpeak.git
        cd picpeak

        # Use the tagged version
        docker-compose -f docker-compose.prod.yml up -d
        ```

        ---

        For detailed deployment instructions, see the [Deployment Guide](https://github.com/the-luap/picpeak/blob/main/DEPLOYMENT.md).

trigger:
  event:
    - tag