diff --git a/.forgejo/workflows/build-artifacts.yml b/.forgejo/workflows/build-artifacts.yml index 4edb557..b813e3a 100644 --- a/.forgejo/workflows/build-artifacts.yml +++ b/.forgejo/workflows/build-artifacts.yml @@ -35,53 +35,45 @@ jobs: - name: Checkout code and setup environment run: | apt update -y - apt install -y git curl pkg-config libssl-dev libsystemd-dev build-essential file zip nodejs npm iproute2 + apt install -y git curl pkg-config libssl-dev libsystemd-dev build-essential file zip nodejs npm iproute2 dnsutils iputils-ping # Install required Rust components - echo "Installing Rust components..." - rustup component add clippy - rustup component add rustfmt - rustup component add rust-src # For better error messages - rustup component add rust-analysis # For IDE support + rustup component add clippy rustfmt rust-src rust-analysis - # Enhanced network diagnostics echo "=== NETWORK DIAGNOSTICS ===" echo "Container hostname: $(hostname)" - echo "Container IP: $(hostname -i)" - echo "Container DNS: $(cat /etc/resolv.conf)" + echo "Container IP: $(ip route get 8.8.8.8 | awk '{print $7; exit}')" + echo "Container DNS:" + cat /etc/resolv.conf echo "Container routing:" - ip route show + ip route + # Test hostname resolution echo "=== HOSTNAME RESOLUTION TESTS ===" echo "Testing forgejo hostname:" - nslookup forgejo || echo "❌ forgejo hostname not resolved" - + nslookup forgejo 8.8.8.8 || echo "❌ forgejo hostname not resolved" echo "Testing git.raines.xyz hostname:" - nslookup git.raines.xyz || echo "❌ git.raines.xyz hostname not resolved" - + nslookup git.raines.xyz 8.8.8.8 || echo "❌ git.raines.xyz hostname not resolved" echo "Testing explicit FORGEJO_HOST ($FORGEJO_HOST):" - nslookup $FORGEJO_HOST || echo "❌ FORGEJO_HOST not resolved" - + nslookup $FORGEJO_HOST 8.8.8.8 || echo "❌ FORGEJO_HOST not resolved" echo "Testing external DNS (google.com):" - nslookup google.com || echo "❌ External DNS not working" + nslookup google.com 8.8.8.8 || echo "❌ External DNS not working" + # Test IP connectivity echo "=== IP CONNECTIVITY TESTS ===" echo "Testing Google DNS (8.8.8.8):" ping -c 3 8.8.8.8 || echo "❌ Google DNS ping failed" - echo "Testing Cloudflare DNS (1.1.1.1):" ping -c 3 1.1.1.1 || echo "❌ Cloudflare DNS ping failed" - # Try to resolve Forgejo server IP if not provided - if [ -z "$FORGEJO_IP" ]; then - echo "=== RESOLVING FORGEJO SERVER IP ===" - FORGEJO_IP=$(nslookup $FORGEJO_HOST | grep -A1 "Name:" | grep "Address:" | awk '{print $2}' | head -1) - if [ -n "$FORGEJO_IP" ]; then - echo "✅ Resolved $FORGEJO_HOST to IP: $FORGEJO_IP" - echo "FORGEJO_IP=$FORGEJO_IP" >> $GITHUB_ENV - else - echo "❌ Could not resolve $FORGEJO_HOST to IP" - fi + # Try to resolve the Forgejo server IP + echo "=== RESOLVING FORGEJO SERVER IP ===" + FORGEJO_IP=$(nslookup $FORGEJO_HOST 8.8.8.8 2>/dev/null | grep -A1 "Name:" | tail -1 | awk '{print $2}') + if [ -n "$FORGEJO_IP" ] && [ "$FORGEJO_IP" != "NXDOMAIN" ]; then + echo "✅ Resolved $FORGEJO_HOST to IP: $FORGEJO_IP" + echo "FORGEJO_IP=$FORGEJO_IP" >> $GITHUB_ENV + else + echo "❌ Could not resolve $FORGEJO_HOST to IP" fi # Test direct IP connectivity if available @@ -123,7 +115,6 @@ jobs: exit 1 } echo "✅ Cargo operations test passed" - cd /tmp/deb-bootupd # Clone repository git clone https://git.raines.xyz/robojerk/deb-bootupd.git /tmp/deb-bootupd diff --git a/.forgejo/workflows/simple-build.yml b/.forgejo/workflows/simple-build.yml index aabb67c..7d97c54 100644 --- a/.forgejo/workflows/simple-build.yml +++ b/.forgejo/workflows/simple-build.yml @@ -31,53 +31,45 @@ jobs: - name: Checkout code and setup environment run: | apt update -y - apt install -y git curl pkg-config libssl-dev libsystemd-dev build-essential file zip nodejs npm iproute2 + apt install -y git curl pkg-config libssl-dev libsystemd-dev build-essential file zip nodejs npm iproute2 dnsutils iputils-ping # Install required Rust components - echo "Installing Rust components..." - rustup component add clippy - rustup component add rustfmt - rustup component add rust-src # For better error messages - rustup component add rust-analysis # For IDE support + rustup component add clippy rustfmt rust-src rust-analysis - # Enhanced network diagnostics echo "=== NETWORK DIAGNOSTICS ===" echo "Container hostname: $(hostname)" - echo "Container IP: $(hostname -i)" - echo "Container DNS: $(cat /etc/resolv.conf)" + echo "Container IP: $(ip route get 8.8.8.8 | awk '{print $7; exit}')" + echo "Container DNS:" + cat /etc/resolv.conf echo "Container routing:" - ip route show + ip route + # Test hostname resolution echo "=== HOSTNAME RESOLUTION TESTS ===" echo "Testing forgejo hostname:" - nslookup forgejo || echo "❌ forgejo hostname not resolved" - + nslookup forgejo 8.8.8.8 || echo "❌ forgejo hostname not resolved" echo "Testing git.raines.xyz hostname:" - nslookup git.raines.xyz || echo "❌ git.raines.xyz hostname not resolved" - + nslookup git.raines.xyz 8.8.8.8 || echo "❌ git.raines.xyz hostname not resolved" echo "Testing explicit FORGEJO_HOST ($FORGEJO_HOST):" - nslookup $FORGEJO_HOST || echo "❌ FORGEJO_HOST not resolved" - + nslookup $FORGEJO_HOST 8.8.8.8 || echo "❌ FORGEJO_HOST not resolved" echo "Testing external DNS (google.com):" - nslookup google.com || echo "❌ External DNS not working" + nslookup google.com 8.8.8.8 || echo "❌ External DNS not working" + # Test IP connectivity echo "=== IP CONNECTIVITY TESTS ===" echo "Testing Google DNS (8.8.8.8):" ping -c 3 8.8.8.8 || echo "❌ Google DNS ping failed" - echo "Testing Cloudflare DNS (1.1.1.1):" ping -c 3 1.1.1.1 || echo "❌ Cloudflare DNS ping failed" - # Try to resolve Forgejo server IP if not provided - if [ -z "$FORGEJO_IP" ]; then - echo "=== RESOLVING FORGEJO SERVER IP ===" - FORGEJO_IP=$(nslookup $FORGEJO_HOST | grep -A1 "Name:" | grep "Address:" | awk '{print $2}' | head -1) - if [ -n "$FORGEJO_IP" ]; then - echo "✅ Resolved $FORGEJO_HOST to IP: $FORGEJO_IP" - echo "FORGEJO_IP=$FORGEJO_IP" >> $GITHUB_ENV - else - echo "❌ Could not resolve $FORGEJO_HOST to IP" - fi + # Try to resolve the Forgejo server IP + echo "=== RESOLVING FORGEJO SERVER IP ===" + FORGEJO_IP=$(nslookup $FORGEJO_HOST 8.8.8.8 2>/dev/null | grep -A1 "Name:" | tail -1 | awk '{print $2}') + if [ -n "$FORGEJO_IP" ] && [ "$FORGEJO_IP" != "NXDOMAIN" ]; then + echo "✅ Resolved $FORGEJO_HOST to IP: $FORGEJO_IP" + echo "FORGEJO_IP=$FORGEJO_IP" >> $GITHUB_ENV + else + echo "❌ Could not resolve $FORGEJO_HOST to IP" fi # Test direct IP connectivity if available