chore: Improve CI workflow with retry logic for package installation
All checks were successful
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
All checks were successful
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:
parent
6adc1f4a5c
commit
ac05c00bd6
@ -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"
|
||||
|
||||
@ -626,6 +626,7 @@ export function PhotoGrid({
|
||||
className="object-contain bg-black/5 transition-transform duration-300 group-hover:scale-105"
|
||||
sizes="(max-width: 640px) 50vw, (max-width: 1024px) 33vw, 20vw"
|
||||
priority={index < 9}
|
||||
unoptimized={!isUrl(photo.path)}
|
||||
onLoad={(e) => !isVideoPhoto && handleImageLoad(photo.id, e.currentTarget)}
|
||||
/>
|
||||
<div className="absolute inset-0 bg-black/0 transition-colors group-hover:bg-black/10" />
|
||||
|
||||
@ -17,12 +17,7 @@ const nextConfig: NextConfig = {
|
||||
// },
|
||||
// Add other CDN or image hosting domains as needed
|
||||
],
|
||||
// Configure local patterns for API routes with query strings
|
||||
localPatterns: [
|
||||
{
|
||||
pathname: '/api/photos/**/image',
|
||||
},
|
||||
],
|
||||
|
||||
// Enable image optimization in production
|
||||
// In development, images are unoptimized for faster iteration
|
||||
unoptimized: process.env.NODE_ENV === 'development',
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user