name: Create Docker Image
run-name: ${{ gitea.actor }} Building Docker Image 🚀
on: [push]

jobs:
  build:
    name: Build Docker Image
    runs-on: docker-x86
    container: 
      image: docker:dind
      privileged: true
    env:
      BRANCH: master
      VERSION: 8.3-fpm
      DOCKER_HOST: tcp://127.0.0.1:2375
      VERSIONARCH: ${VERSION}-${ARCH}

    steps:
      - name: Environment
        run: |
          if [ ! -d build-cache ]; then mkdir build-cache; fi
          if [ -n "${HTTP_PROXY}" ]; then echo "HTTP PROXY [${HTTP_PROXY}]"; sed -i -e s'/https/http/' /etc/apk/repositories; fi
          apk add git curl nodejs jq
          ( dockerd --host=tcp://0.0.0.0:2375 --tls=false & ) && sleep 3
          docker info && docker version
          # env|sort
          # docker login -u "$CI_DEPENDENCY_PROXY_USER" -p "$CI_DEPENDENCY_PROXY_PASSWORD" "$CI_SERVER_HOST"
          #echo "$CI_JOB_TOKEN" | docker login -u "$CI_REGISTRY_USER" "$CI_REGISTRY" --password-stdin
          echo "++ PS" && ps -Af
          echo "++ Environment" && env|sort
          echo "++ PWD" && pwd
          echo "++ ls" && ls -al

      - name: Checkout Code
        uses: actions/checkout@v4

      - name: Prepare Registry FQDN
        id: registry
        run: |
          registry=${{ github.server_url }}
          registry=${registry##http*://}
          echo "registry=${registry}" >> "$GITHUB_OUTPUT"

      - name: Environment part 2
        run: |
          echo "++ Environment" && env|sort
          echo "++ PWD" && pwd
          echo "++ ls" && ls -al
          echo "++ workspace" && ls ${{ gitea.workspace }}
          echo "++ host is ${{ gitea.repository }}"
          echo "++ registry is ${{ steps.registry.outputs.registry }}"
          echo "++ container ${{ steps.registry.outputs.registry }}/${{ env.GITHUB_REPOSITORY }}:${{ env.VERSION }}"
          echo "++ gitea server/domain ${{ gitea.server }}/${{ gitea.domain }}:latest"

      - name: Build
        run: |
          set -x
          if [ -f init ]; then chmod 500 init; fi
          echo docker build ${HTTP_PROXY:+--build-arg HTTP_PROXY=${HTTP_PROXY}} -t ${{ steps.registry.outputs.registry }}/${{ env.GITHUB_REPOSITORY }}:${{ env.VERSION }}
          echo docker push ${{ steps.registry.outputs.registry }}/${{ env.GITHUB_REPOSITORY }}:${{ env.VERSION }}

      # name: Set up Docker Buildx
      # uses: https://github.com/docker/setup-buildx-action@v3
      # with:
      #   config-inline: |
      #     [registry."<my-private-unsecure-git-repository-ip-address>:5000"]
      #       http = true
      #       insecure = true            

      - name: Build and push Docker image
        uses: docker/build-push-action@v5
        with:
          context: .
          file: ./Dockerfile
          push: true
          tags: "${{ steps.registry.outputs.registry }}/${{ env.GITHUB_REPOSITORY }}:${{ env.VERSION }}"