Fix workflow issues: add network tools, fix directory logic, improve diagnostics
Some checks failed
Build deb-bootupd Artifacts / build (push) Failing after 1m48s
Simple Build and Upload / build (push) Failing after 2m10s

This commit is contained in:
robojerk 2025-08-10 09:05:43 -07:00
parent 9efa4bb12a
commit 989beeb14b
2 changed files with 40 additions and 57 deletions

View file

@ -35,53 +35,45 @@ jobs:
- name: Checkout code and setup environment - name: Checkout code and setup environment
run: | run: |
apt update -y 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 # Install required Rust components
echo "Installing Rust components..." rustup component add clippy rustfmt rust-src rust-analysis
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
# Enhanced network diagnostics
echo "=== NETWORK DIAGNOSTICS ===" echo "=== NETWORK DIAGNOSTICS ==="
echo "Container hostname: $(hostname)" echo "Container hostname: $(hostname)"
echo "Container IP: $(hostname -i)" echo "Container IP: $(ip route get 8.8.8.8 | awk '{print $7; exit}')"
echo "Container DNS: $(cat /etc/resolv.conf)" echo "Container DNS:"
cat /etc/resolv.conf
echo "Container routing:" echo "Container routing:"
ip route show ip route
# Test hostname resolution
echo "=== HOSTNAME RESOLUTION TESTS ===" echo "=== HOSTNAME RESOLUTION TESTS ==="
echo "Testing forgejo hostname:" 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:" 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):" 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):" 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 "=== IP CONNECTIVITY TESTS ==="
echo "Testing Google DNS (8.8.8.8):" echo "Testing Google DNS (8.8.8.8):"
ping -c 3 8.8.8.8 || echo "❌ Google DNS ping failed" ping -c 3 8.8.8.8 || echo "❌ Google DNS ping failed"
echo "Testing Cloudflare DNS (1.1.1.1):" echo "Testing Cloudflare DNS (1.1.1.1):"
ping -c 3 1.1.1.1 || echo "❌ Cloudflare DNS ping failed" ping -c 3 1.1.1.1 || echo "❌ Cloudflare DNS ping failed"
# Try to resolve Forgejo server IP if not provided # Try to resolve the Forgejo server IP
if [ -z "$FORGEJO_IP" ]; then echo "=== RESOLVING 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}')
FORGEJO_IP=$(nslookup $FORGEJO_HOST | grep -A1 "Name:" | grep "Address:" | awk '{print $2}' | head -1) if [ -n "$FORGEJO_IP" ] && [ "$FORGEJO_IP" != "NXDOMAIN" ]; then
if [ -n "$FORGEJO_IP" ]; then echo "✅ Resolved $FORGEJO_HOST to IP: $FORGEJO_IP"
echo "✅ Resolved $FORGEJO_HOST to IP: $FORGEJO_IP" echo "FORGEJO_IP=$FORGEJO_IP" >> $GITHUB_ENV
echo "FORGEJO_IP=$FORGEJO_IP" >> $GITHUB_ENV else
else echo "❌ Could not resolve $FORGEJO_HOST to IP"
echo "❌ Could not resolve $FORGEJO_HOST to IP"
fi
fi fi
# Test direct IP connectivity if available # Test direct IP connectivity if available
@ -123,7 +115,6 @@ jobs:
exit 1 exit 1
} }
echo "✅ Cargo operations test passed" echo "✅ Cargo operations test passed"
cd /tmp/deb-bootupd
# Clone repository # Clone repository
git clone https://git.raines.xyz/robojerk/deb-bootupd.git /tmp/deb-bootupd git clone https://git.raines.xyz/robojerk/deb-bootupd.git /tmp/deb-bootupd

View file

@ -31,53 +31,45 @@ jobs:
- name: Checkout code and setup environment - name: Checkout code and setup environment
run: | run: |
apt update -y 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 # Install required Rust components
echo "Installing Rust components..." rustup component add clippy rustfmt rust-src rust-analysis
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
# Enhanced network diagnostics
echo "=== NETWORK DIAGNOSTICS ===" echo "=== NETWORK DIAGNOSTICS ==="
echo "Container hostname: $(hostname)" echo "Container hostname: $(hostname)"
echo "Container IP: $(hostname -i)" echo "Container IP: $(ip route get 8.8.8.8 | awk '{print $7; exit}')"
echo "Container DNS: $(cat /etc/resolv.conf)" echo "Container DNS:"
cat /etc/resolv.conf
echo "Container routing:" echo "Container routing:"
ip route show ip route
# Test hostname resolution
echo "=== HOSTNAME RESOLUTION TESTS ===" echo "=== HOSTNAME RESOLUTION TESTS ==="
echo "Testing forgejo hostname:" 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:" 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):" 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):" 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 "=== IP CONNECTIVITY TESTS ==="
echo "Testing Google DNS (8.8.8.8):" echo "Testing Google DNS (8.8.8.8):"
ping -c 3 8.8.8.8 || echo "❌ Google DNS ping failed" ping -c 3 8.8.8.8 || echo "❌ Google DNS ping failed"
echo "Testing Cloudflare DNS (1.1.1.1):" echo "Testing Cloudflare DNS (1.1.1.1):"
ping -c 3 1.1.1.1 || echo "❌ Cloudflare DNS ping failed" ping -c 3 1.1.1.1 || echo "❌ Cloudflare DNS ping failed"
# Try to resolve Forgejo server IP if not provided # Try to resolve the Forgejo server IP
if [ -z "$FORGEJO_IP" ]; then echo "=== RESOLVING 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}')
FORGEJO_IP=$(nslookup $FORGEJO_HOST | grep -A1 "Name:" | grep "Address:" | awk '{print $2}' | head -1) if [ -n "$FORGEJO_IP" ] && [ "$FORGEJO_IP" != "NXDOMAIN" ]; then
if [ -n "$FORGEJO_IP" ]; then echo "✅ Resolved $FORGEJO_HOST to IP: $FORGEJO_IP"
echo "✅ Resolved $FORGEJO_HOST to IP: $FORGEJO_IP" echo "FORGEJO_IP=$FORGEJO_IP" >> $GITHUB_ENV
echo "FORGEJO_IP=$FORGEJO_IP" >> $GITHUB_ENV else
else echo "❌ Could not resolve $FORGEJO_HOST to IP"
echo "❌ Could not resolve $FORGEJO_HOST to IP"
fi
fi fi
# Test direct IP connectivity if available # Test direct IP connectivity if available