chore: Improve CI workflow with retry logic for package installation
CI / skip-ci-check (pull_request) Successful in 1m50s
CI / lint-and-type-check (pull_request) Successful in 2m28s
CI / python-lint (pull_request) Successful in 2m14s
CI / test-backend (pull_request) Successful in 4m8s
CI / build (pull_request) Successful in 4m55s
CI / secret-scanning (pull_request) Successful in 1m58s
CI / dependency-scan (pull_request) Successful in 1m55s
CI / sast-scan (pull_request) Successful in 3m2s
CI / workflow-summary (pull_request) Successful in 1m49s

This commit enhances the CI workflow by adding retry logic for package installation in the Debian environment. It addresses transient issues with Debian mirror sync by allowing up to three attempts to install necessary packages, improving the reliability of the CI process. Additionally, it cleans the apt cache before retrying to ensure a fresh attempt.

Also, it removes unused local patterns configuration from the Next.js setup and adds an unoptimized prop to the PhotoGrid component for better image handling based on the URL state.
This commit is contained in:
Tanya
2026-01-22 11:40:16 -05:00
parent 6adc1f4a5c
commit ac05c00bd6
3 changed files with 26 additions and 11 deletions
+24 -5
View File
@@ -618,11 +618,30 @@ jobs:
run: |
# Install Python 3.12 using pyenv (required for modern type hints like str | None)
# Debian Bullseye doesn't have Python 3.12 in default repos, so we use pyenv
apt-get update && apt-get install -y \
make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev \
libffi-dev liblzma-dev git
# Retry logic for transient Debian mirror sync issues
MAX_RETRIES=3
RETRY_COUNT=0
while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do
if apt-get update && apt-get install -y --fix-missing \
make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev \
libffi-dev liblzma-dev git; then
echo "✅ Package installation succeeded"
break
else
RETRY_COUNT=$((RETRY_COUNT + 1))
if [ $RETRY_COUNT -lt $MAX_RETRIES ]; then
echo "⚠️ Package installation failed (attempt $RETRY_COUNT/$MAX_RETRIES), retrying in 5 seconds..."
sleep 5
# Clear apt cache and retry
apt-get clean
else
echo "❌ Package installation failed after $MAX_RETRIES attempts"
exit 1
fi
fi
done
# Install pyenv
export PYENV_ROOT="/opt/pyenv"