name: Build images on: push: branches: - main env: # Set this to the public IP or hostname of your registry, # whichever you use to reach it from your desktop/laptop FORGEJO_HOST: code.zeidler.dev HELM_EXPERIMENTAL_OCI: 1 jobs: check-docker: runs-on: docker-cli services: docker: image: registry.zeidler.dev/docker-hub/catthehacker/ubuntu:act-latest options: --privileged container: image: registry.zeidler.dev/docker-hub/catthehacker/ubuntu:act-latest steps: - name: Wait for Docker daemon run: | timeout=300 # Set a timeout value in seconds until docker info; do echo "Waiting for Docker daemon to start..." sleep 5 timeout=$((timeout-5)) if [ $timeout -le 0 ]; then echo "Timeout waiting for Docker daemon to start." exit 1 fi done build-and-push: runs-on: docker-cli services: docker: image: registry.zeidler.dev/docker-hub/catthehacker/ubuntu:act-latest options: --privileged environment: deploy container: image: registry.zeidler.dev/docker-hub/catthehacker/ubuntu:act-latest steps: - name: Checkout the repo uses: actions/checkout@v4 - name: Login to the registry uses: docker/login-action@v3 with: registry: ${{ vars.REGISTRY_URL }} username: ${{ vars.REGISTRY_USER }} password: ${{ secrets.REGISTRY_PASSWORD }} - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 with: driver: docker-container - name: Docker publish proxy uses: docker/build-push-action@v6 with: context: proxy push: true platforms: linux/amd64, linux/arm64 tags: | ${{ vars.REGISTRY_URL }}/docker-public/${{ env.GITHUB_REPOSITORY }}-proxy:0.1.${{ env.GITHUB_RUN_NUMBER }} ${{ vars.REGISTRY_URL }}/docker-public/${{ env.GITHUB_REPOSITORY }}-proxy:latest - name: Docker publish claude uses: docker/build-push-action@v6 with: context: claude push: true platforms: linux/amd64, linux/arm64 tags: | ${{ vars.REGISTRY_URL }}/docker-public/${{ env.GITHUB_REPOSITORY }}-claude:0.1.${{ env.GITHUB_RUN_NUMBER }} ${{ vars.REGISTRY_URL }}/docker-public/${{ env.GITHUB_REPOSITORY }}-claude:latest