fix: Re-enable multi-platform Docker builds for ARM64 support

This commit is contained in:
UncleCode
2025-07-25 16:38:11 +08:00
parent e2b4705010
commit d58b93c207
2 changed files with 84 additions and 1 deletions

View File

@@ -87,7 +87,7 @@ jobs:
tags: |
unclecode/crawl4ai:test-${{ steps.get_version.outputs.VERSION }}
unclecode/crawl4ai:test-latest
platforms: linux/amd64
platforms: linux/amd64,linux/arm64
cache-from: type=gha
cache-to: type=gha,mode=max

83
test_release.py Executable file
View File

@@ -0,0 +1,83 @@
#!/usr/bin/env python3
"""Test script for verifying Test PyPI and Docker releases"""
import subprocess
import sys
def test_pypi():
print("=== Testing Test PyPI Package ===")
print("1. Creating virtual environment...")
subprocess.run([sys.executable, "-m", "venv", "test_env"], check=True)
print("2. Installing from Test PyPI...")
pip_cmd = "./test_env/bin/pip" if sys.platform != "win32" else "test_env\\Scripts\\pip"
subprocess.run([
pip_cmd, "install", "-i", "https://test.pypi.org/simple/",
"--extra-index-url", "https://pypi.org/simple/", # For dependencies
"crawl4ai==0.7.1"
], check=True)
print("3. Testing import...")
python_cmd = "./test_env/bin/python" if sys.platform != "win32" else "test_env\\Scripts\\python"
result = subprocess.run([
python_cmd, "-c",
"from crawl4ai import AsyncWebCrawler; print('✅ Import successful!'); print(f'Version: {__import__(\"crawl4ai\").__version__}')"
], capture_output=True, text=True)
print(result.stdout)
if result.returncode != 0:
print(f"❌ Error: {result.stderr}")
return False
print("4. Cleaning up...")
import shutil
shutil.rmtree("test_env")
print("✅ Test PyPI package test passed!\n")
return True
def test_docker():
print("=== Testing Docker Image ===")
print("1. Pulling test image...")
subprocess.run(["docker", "pull", "unclecode/crawl4ai:test-0.7.1"], check=True)
print("2. Running version check...")
result = subprocess.run([
"docker", "run", "--rm", "unclecode/crawl4ai:test-0.7.1",
"python", "-c", "import crawl4ai; print(f'Version: {crawl4ai.__version__}')"
], capture_output=True, text=True)
print(result.stdout)
print("3. Testing crawl4ai-doctor command...")
result = subprocess.run([
"docker", "run", "--rm", "unclecode/crawl4ai:test-0.7.1",
"crawl4ai-doctor"
], capture_output=True, text=True)
print(result.stdout[:500] + "..." if len(result.stdout) > 500 else result.stdout)
print("✅ Docker image test passed!\n")
return True
if __name__ == "__main__":
print("🧪 Testing Crawl4AI Release Artifacts\n")
pypi_ok = False
docker_ok = False
try:
pypi_ok = test_pypi()
except Exception as e:
print(f"❌ Test PyPI test failed: {e}")
try:
docker_ok = test_docker()
except Exception as e:
print(f"❌ Docker test failed: {e}")
print("\n📊 Summary:")
print(f"Test PyPI: {'✅ Passed' if pypi_ok else '❌ Failed'}")
print(f"Docker Hub: {'✅ Passed' if docker_ok else '❌ Failed'}")
if pypi_ok and docker_ok:
print("\n🎉 All tests passed! Ready for production release.")
else:
print("\n⚠️ Some tests failed. Please fix before production release.")
sys.exit(1)