name: dockerize

on:
  push:
    tags:
      - "*"
    branches:
      - master
    paths:
      - src/khoj/**
      - config/**
      - pyproject.toml
      - Dockerfile
      - docker-compose.yml
      - .github/workflows/dockerize.yml
  workflow_dispatch:

env:
  DOCKER_IMAGE_TAG: ${{ github.ref == 'refs/heads/master' && 'latest' || github.ref_name }}

jobs:
  build:
    name: Build Docker Image, Push to Container Registry
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Code
        uses: actions/checkout@v3

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

      - name: Login to GitHub Container Registry
        uses: docker/login-action@v2
        with:
          registry: ghcr.io
          username: ${{ github.repository_owner }}
          password: ${{ secrets.PAT }}

      - name: 📦 Build and Push Docker Image
        uses: docker/build-push-action@v2
        with:
          context: .
          file: Dockerfile
          push: true
          tags: ghcr.io/${{ github.repository }}:${{ env.DOCKER_IMAGE_TAG }}
          build-args: |
            PORT=42110
