Skip to content

Commit fcdbb11

Browse files
Pull deps image on ARM when unchanged, add push retry (#63)
* Upgrade ARM CI instances to m8g.xlarge and add push retry logic t4g.large was causing Docker daemon crashes due to resource exhaustion during ARM builds, leading to failed image pushes (EOF on docker socket). * Address Copilot review: redirect push output to log file and skip sleep after final retry
1 parent 810eb5b commit fcdbb11

3 files changed

Lines changed: 19 additions & 11 deletions

File tree

.github/executions/fp_ds_test_execution_arm.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
"instance_parameters" :
2020
{
2121
"ImageId" : "ami-01fc4c78425e127e6",
22-
"InstanceType" : "t4g.large",
22+
"InstanceType" : "m8g.xlarge",
2323
"KeyName" : "actions_key_arm",
2424
"SecurityGroupIds" : ["sg-0fcbe0c6d6faa0117"],
2525
"IamInstanceProfile": {

.github/executions/fp_push_execution_arm.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
"instance_parameters" :
2424
{
2525
"ImageId" : "ami-01fc4c78425e127e6",
26-
"InstanceType" : "t4g.large",
26+
"InstanceType" : "m8g.xlarge",
2727
"KeyName" : "actions_key_arm",
2828
"SecurityGroupIds" : ["sg-0fcbe0c6d6faa0117"],
2929
"IamInstanceProfile": {

docker/docker_loginNpush.sh

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -53,16 +53,24 @@ echo "$DOCKERHUB_TOKEN" | docker login -u awiciroh --password-stdin >> "$LOG_FIL
5353
}
5454
log "✓ Docker login successful"
5555

56-
# Push function
56+
# Push function with retry logic
5757
push_image() {
58-
local image=$1 tag=$2
59-
log "Pushing $image:$tag and latest-arm64..."
60-
61-
docker tag "awiciroh/$image:latest-arm64" "awiciroh/$image:$tag" >> "$LOG_FILE" 2>&1
62-
docker push "awiciroh/$image:$tag" >> "$LOG_FILE" 2>&1
63-
docker push "awiciroh/$image:latest-arm64" >> "$LOG_FILE" 2>&1
64-
65-
log "✓ Successfully pushed $image:$tag"
58+
local image=$1 tag=$2 max_retries=3
59+
for i in $(seq 1 $max_retries); do
60+
log "Pushing $image:$tag (attempt $i/$max_retries)..."
61+
if docker tag "awiciroh/$image:latest-arm64" "awiciroh/$image:$tag" >> "$LOG_FILE" 2>&1 && \
62+
docker push "awiciroh/$image:$tag" >> "$LOG_FILE" 2>&1 && \
63+
docker push "awiciroh/$image:latest-arm64" >> "$LOG_FILE" 2>&1; then
64+
log "✓ Successfully pushed $image:$tag"
65+
return 0
66+
fi
67+
if [ "$i" -lt "$max_retries" ]; then
68+
log "Attempt $i failed, retrying in 10s..."
69+
sleep 10
70+
fi
71+
done
72+
log "✗ Failed to push $image:$tag after $max_retries attempts"
73+
return 1
6674
}
6775

6876
# Push all queued images

0 commit comments

Comments
 (0)