9090 runs-on : ubuntu-latest
9191 permissions :
9292 packages : read
93+ # Skip for merge groups since images aren't built for them
94+ if : github.event_name != 'merge_group'
9395 steps :
9496 - uses : actions/checkout@v4
9597
@@ -105,16 +107,52 @@ jobs:
105107 username : ${{ github.actor }}
106108 password : ${{ secrets.GITHUB_TOKEN }}
107109
110+ - name : Verify required image exists
111+ run : |
112+ echo "Checking if PR-specific image exists..."
113+ if docker manifest inspect ghcr.io/${{ github.repository_owner }}/ev-node-evm-single:${{ inputs.image-tag }} >/dev/null 2>&1; then
114+ echo "✅ PR image exists: ghcr.io/${{ github.repository_owner }}/ev-node-evm-single:${{ inputs.image-tag }}"
115+ else
116+ echo "⚠️ PR image not found, will fallback to main image during pull"
117+ fi
118+
108119 - name : Update docker-compose.yml to use PR image
109120 run : |
110121 cd apps/evm/single
111122 # Replace the main image tag with PR-specific tag
112123 sed -i 's|ghcr.io/evstack/ev-node-evm-single:main|ghcr.io/${{ github.repository_owner }}/ev-node-evm-single:${{ inputs.image-tag }}|g' docker-compose.yml
113124 echo "Updated docker-compose.yml to use image: ghcr.io/${{ github.repository_owner }}/ev-node-evm-single:${{ inputs.image-tag }}"
125+ # Display the updated compose file for debugging
126+ echo "=== Updated docker-compose.yml ==="
127+ grep -A 2 -B 2 "ghcr.io.*ev-node-evm-single" docker-compose.yml || echo "Image reference not found"
128+
114129 - name : Pull required images
115130 run : |
116131 cd apps/evm/single
117- docker compose pull
132+ echo "Attempting to pull images..."
133+
134+ # Try to pull all images, but don't fail if PR image doesn't exist
135+ docker compose pull --ignore-pull-failures || {
136+ echo "⚠️ Some images failed to pull, trying individual pulls..."
137+
138+ # Pull base images that should always exist
139+ docker pull ghcr.io/evstack/lumen:latest || echo "Failed to pull lumen image"
140+ docker pull ghcr.io/rollkit/local-da:v0.1.0 || echo "Failed to pull local-da image"
141+
142+ # Try to pull the PR-specific image, fallback to main if it fails
143+ if ! docker pull ghcr.io/${{ github.repository_owner }}/ev-node-evm-single:${{ inputs.image-tag }}; then
144+ echo "⚠️ PR image not found, falling back to main image"
145+ # Revert docker-compose.yml to use main image
146+ sed -i 's|ghcr.io/${{ github.repository_owner }}/ev-node-evm-single:${{ inputs.image-tag }}|ghcr.io/evstack/ev-node-evm-single:main|g' docker-compose.yml
147+ docker pull ghcr.io/evstack/ev-node-evm-single:main || {
148+ echo "❌ Failed to pull fallback image, this is critical"
149+ exit 1
150+ }
151+ fi
152+ }
153+
154+ echo "=== Final docker-compose.yml ==="
155+ grep -A 2 -B 2 "ghcr.io.*ev-node-evm-single" docker-compose.yml || echo "Image reference not found"
118156
119157 - name : Start Docker Compose services
120158 run : |
0 commit comments