name: Build and Push Docker Image - Latest

on:
  workflow_dispatch:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:

  build_and_push_server_latest:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3
        with:
          ref: "main" # branch
      - name: Set up QEMU
        uses: docker/setup-qemu-action@v1.2.0
      - name: Set up Docker Buildx
        id: buildx
        uses: docker/setup-buildx-action@v1.6.0
      - name: Login to Docker Hub
        uses: docker/login-action@v1
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}
      - name: Build and push Immich
        uses: docker/build-push-action@v2.10.0
        with:
          context: ./server
          file: ./server/Dockerfile
          platforms: linux/arm/v7,linux/amd64,linux/arm64
          push: ${{ github.event_name != 'pull_request' }}
          tags: |
            altran1502/immich-server:latest

  build_and_push_microservice_latest:
      runs-on: ubuntu-latest
      steps:
        - name: Checkout
          uses: actions/checkout@v3
          with:
            ref: "main" # branch
        - name: Set up QEMU
          uses: docker/setup-qemu-action@v1.2.0
        - name: Set up Docker Buildx
          id: buildx
          uses: docker/setup-buildx-action@v1.6.0
        - name: Login to Docker Hub
          uses: docker/login-action@v1
          with:
            username: ${{ secrets.DOCKERHUB_USERNAME }}
            password: ${{ secrets.DOCKERHUB_TOKEN }}
        - name: Build and Push Microservices
          uses: docker/build-push-action@v2.10.0
          with:
            context: ./microservices
            file: ./microservices/Dockerfile
            platforms: linux/arm/v7,linux/amd64
            push: ${{ github.event_name != 'pull_request' }}
            tags: |
              altran1502/immich-microservices:latest