name: 'Build Custom docker:dind image'
author: 'Neshura'

on:
  push:
  schedule: 
    - cron: '0 0 * * 1'
jobs:
  build-container:
    runs-on: dind
    continue-on-error: true
    steps:
      -
        name: Install Node.js
        run: apk add nodejs npm
      -
        name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3
        with:
          config-inline: |
            [registry."docker.io"]
              mirrors = ["https://docker-cache.neshweb.net"]
      -
        name: Login to Docker Hub
        uses: docker/login-action@v3
        with:
          registry: forgejo.neshweb.net
          username: ${{ secrets.FORGEJO_USERNAME }}
          password: ${{ secrets.FORGEJO_TOKEN }}
      -
        name: Push to Package Registry
        uses: docker/build-push-action@v5
        with:
          push: true
          tags: forgejo.neshweb.net/ci-docker-images/dind-bash:latest
                    
  build-container-fallback:
    if: steps.build-container.result == 'failure'
    runs-on: docker
    steps:
      -
        name: Prepare Container Environment
        run: |
          install -m 0755 -d /etc/apt/keyrings; \
          curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg; \
          chmod a+r /etc/apt/keyrings/docker.gpg; \
          echo \
            "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
            "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
            tee /etc/apt/sources.list.d/docker.list > /dev/null; \
          apt-get update; \
          apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
      -
        name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3
        with:
          config-inline: |
            [registry."docker.io"]
              mirrors = ["https://docker-cache.neshweb.net"]
      -
        name: Login to Docker Hub
        uses: docker/login-action@v3
        with:
          registry: forgejo.neshweb.net
          username: ${{ secrets.FORGEJO_USERNAME }}
          password: ${{ secrets.FORGEJO_TOKEN }}
      -
        name: Push to Package Registry
        uses: docker/build-push-action@v5
        with:
          push: true
          tags: forgejo.neshweb.net/ci-docker-images/dind-bash:latest