name: Build And Publish Docker

on:
  push:
    branches:
      - "master"

jobs:
  build:
    runs-on: debian-bookworm

  strategy:
    matrix:
      hugo-version: ["0.127.0", "0.126.0"]
      node-version: ["22"]

    steps:
      - uses: actions/checkout@v3

      - name: Install deps
        run: curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh

      - name: Set up QEMU
        uses: docker/setup-qemu-action@master
        with:
          platforms: all

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

      - name: Login to Self-Hosted Registry
        uses: docker/login-action@v2
        with:
          registry: git.myco.systems
          username: ${{ secrets.REGISTRY_USER }}
          password: ${{ secrets.PERSONAL_ACCESS_TOKEN }}

      - name: Build and Push Extended Version
        uses: docker/build-push-action@v4
        with:
          builder: ${{ steps.buildx.outputs.name }}
          context: ./
          file: ./Dockerfile
          platforms: linux/amd64
          push: true
          build-args: |
            HUGO_VERSION=${{ matrix.hugo-version }}
            NODE_VERSION=${{ matrix.node-version }}
            GO_VERSION=${{ matrix.go-version }}
          tags: |
            git.myco.systems/mycosystems/hugo-ci:extended-alpine-${{ matrix.hugo-version }}-${{ matrix.node-version }}-${{ matrix.go-version }}
            git.myco.systems/mycosystems/hugo-ci:extended-alpine-latest