name: Build and Push Docker Image on: push: branches: - main jobs: build-and-push: runs-on: ubuntu-latest steps: - name: Debug - Network and DNS Configuration run: | echo "=== Installing debug tools ===" apt-get update -qq apt-get install -y -qq dnsutils iputils-ping curl iproute2 2>/dev/null || echo "Some tools failed to install" echo "" echo "=== Network Configuration ===" ip addr show 2>/dev/null || ifconfig 2>/dev/null || echo "No network tools available" echo "" echo "=== DNS Configuration ===" cat /etc/resolv.conf echo "" echo "=== Hostname ===" hostname cat /etc/hosts echo "" echo "=== Testing DNS Resolution ===" echo "Testing Google DNS:" nslookup google.com || echo "Failed to resolve google.com" echo "" echo "Testing forgejo.sivic.me:" nslookup forgejo.sivic.me || echo "Failed to resolve forgejo.sivic.me" echo "" echo "=== Testing with dig ===" dig forgejo.sivic.me || echo "dig failed" echo "" echo "Using Google DNS directly:" dig @8.8.8.8 forgejo.sivic.me || echo "dig @8.8.8.8 failed" echo "" echo "=== Testing connectivity ===" ping -c 3 8.8.8.8 || echo "Cannot ping 8.8.8.8" echo "" echo "=== Testing HTTP access ===" curl -v https://forgejo.sivic.me 2>&1 | head -30 || echo "Failed to curl forgejo.sivic.me" - name: Debug - Check current directory run: | echo "=== Current Directory ===" pwd ls -la echo "" echo "=== Environment Variables ===" echo "Git SHA: ${{ github.sha }}" echo "Repository: ${{ github.repository }}" echo "Actor: ${{ github.actor }}" echo "Server URL: ${{ github.server_url }}" - name: Clone repository with debugging run: | echo "=== Attempting to clone ===" echo "URL: ${{ github.server_url }}/${{ github.repository }}" # Try normal clone first if git clone ${{ github.server_url }}/${{ github.repository }} repo 2>&1; then echo "Clone succeeded!" else echo "Clone failed, trying with IP..." FORGEJO_IP=$(dig +short forgejo.sivic.me | head -1) echo "Forgejo IP: $FORGEJO_IP" if [ -n "$FORGEJO_IP" ]; then echo "Attempting clone with IP: $FORGEJO_IP" git -c http.sslVerify=false clone https://$FORGEJO_IP/kevinsivic/ratemyclient repo || { echo "IP clone also failed" exit 1 } else echo "Could not determine IP address" exit 1 fi fi cd repo git checkout ${{ github.sha }} ls -la - name: Build Docker image run: | cd repo docker build -t forgejo.sivic.me/${{ github.repository }}:latest \ -t forgejo.sivic.me/${{ github.repository }}:${{ github.sha }} . - name: Log in to Forgejo Container Registry run: | echo "${{ secrets.GITEA_TOKEN }}" | docker login forgejo.sivic.me -u ${{ github.actor }} --password-stdin - name: Push Docker image run: | docker push forgejo.sivic.me/${{ github.repository }}:latest docker push forgejo.sivic.me/${{ github.repository }}:${{ github.sha }}