diff options
| author | chrislu <chris.lu@gmail.com> | 2025-11-27 22:50:29 -0800 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2025-11-27 22:50:29 -0800 |
| commit | 0064e3720653ced63d8ca0594f0df3e55e228a71 (patch) | |
| tree | 87d840af3273dc7f401051ddd0d1f8e76113b388 /.github | |
| parent | 487c0f92a92f4be881fc2926f6f9f83bf842d33d (diff) | |
| download | seaweedfs-0064e3720653ced63d8ca0594f0df3e55e228a71.tar.xz seaweedfs-0064e3720653ced63d8ca0594f0df3e55e228a71.zip | |
fix build issues
Diffstat (limited to '.github')
| -rw-r--r-- | .github/workflows/container_latest.yml | 35 | ||||
| -rw-r--r-- | .github/workflows/container_release1.yml | 30 | ||||
| -rw-r--r-- | .github/workflows/container_release2.yml | 30 |
3 files changed, 89 insertions, 6 deletions
diff --git a/.github/workflows/container_latest.yml b/.github/workflows/container_latest.yml index 12c3b9d01..bffc7b15f 100644 --- a/.github/workflows/container_latest.yml +++ b/.github/workflows/container_latest.yml @@ -134,15 +134,42 @@ jobs: password: ${{ secrets.GHCR_TOKEN }} - name: Create and push manifest run: | - # Create manifest for Docker Hub - docker buildx imagetools create -t chrislusf/seaweedfs:latest \ + # Function to retry command with exponential backoff + retry_with_backoff() { + local max_attempts=5 + local timeout=1 + local attempt=1 + local exit_code=0 + + while [ $attempt -le $max_attempts ]; do + if "$@"; then + return 0 + else + exit_code=$? + fi + + if [ $attempt -lt $max_attempts ]; then + echo "Attempt $attempt failed. Retrying in ${timeout}s..." >&2 + sleep $timeout + timeout=$((timeout * 2)) + fi + + attempt=$((attempt + 1)) + done + + echo "Command failed after $max_attempts attempts" >&2 + return $exit_code + } + + # Create manifest for Docker Hub with retry + retry_with_backoff docker buildx imagetools create -t chrislusf/seaweedfs:latest \ chrislusf/seaweedfs:latest-amd64 \ chrislusf/seaweedfs:latest-arm64 \ chrislusf/seaweedfs:latest-arm \ chrislusf/seaweedfs:latest-386 - # Create manifest for GHCR - docker buildx imagetools create -t ghcr.io/chrislusf/seaweedfs:latest \ + # Create manifest for GHCR with retry + retry_with_backoff docker buildx imagetools create -t ghcr.io/chrislusf/seaweedfs:latest \ ghcr.io/chrislusf/seaweedfs:latest-amd64 \ ghcr.io/chrislusf/seaweedfs:latest-arm64 \ ghcr.io/chrislusf/seaweedfs:latest-arm \ diff --git a/.github/workflows/container_release1.yml b/.github/workflows/container_release1.yml index 6c83e4a18..cf74ea3ca 100644 --- a/.github/workflows/container_release1.yml +++ b/.github/workflows/container_release1.yml @@ -114,7 +114,35 @@ jobs: password: ${{ secrets.DOCKER_PASSWORD }} - name: Create and push manifest run: | - docker buildx imagetools create -t ${{ steps.docker_meta.outputs.tags }} \ + # Function to retry command with exponential backoff + retry_with_backoff() { + local max_attempts=5 + local timeout=1 + local attempt=1 + local exit_code=0 + + while [ $attempt -le $max_attempts ]; do + if "$@"; then + return 0 + else + exit_code=$? + fi + + if [ $attempt -lt $max_attempts ]; then + echo "Attempt $attempt failed. Retrying in ${timeout}s..." >&2 + sleep $timeout + timeout=$((timeout * 2)) + fi + + attempt=$((attempt + 1)) + done + + echo "Command failed after $max_attempts attempts" >&2 + return $exit_code + } + + # Create manifest with retry + retry_with_backoff docker buildx imagetools create -t ${{ steps.docker_meta.outputs.tags }} \ ${{ steps.docker_meta.outputs.tags }}-amd64 \ ${{ steps.docker_meta.outputs.tags }}-arm64 \ ${{ steps.docker_meta.outputs.tags }}-arm \ diff --git a/.github/workflows/container_release2.yml b/.github/workflows/container_release2.yml index e5b5efaf0..fd14b8f54 100644 --- a/.github/workflows/container_release2.yml +++ b/.github/workflows/container_release2.yml @@ -115,7 +115,35 @@ jobs: password: ${{ secrets.DOCKER_PASSWORD }} - name: Create and push manifest run: | - docker buildx imagetools create -t ${{ steps.docker_meta.outputs.tags }} \ + # Function to retry command with exponential backoff + retry_with_backoff() { + local max_attempts=5 + local timeout=1 + local attempt=1 + local exit_code=0 + + while [ $attempt -le $max_attempts ]; do + if "$@"; then + return 0 + else + exit_code=$? + fi + + if [ $attempt -lt $max_attempts ]; then + echo "Attempt $attempt failed. Retrying in ${timeout}s..." >&2 + sleep $timeout + timeout=$((timeout * 2)) + fi + + attempt=$((attempt + 1)) + done + + echo "Command failed after $max_attempts attempts" >&2 + return $exit_code + } + + # Create manifest with retry + retry_with_backoff docker buildx imagetools create -t ${{ steps.docker_meta.outputs.tags }} \ ${{ steps.docker_meta.outputs.tags }}-amd64 \ ${{ steps.docker_meta.outputs.tags }}-arm64 \ ${{ steps.docker_meta.outputs.tags }}-arm \ |
