fix(ci): fix S3 static deploy and rollout verification (#65)
## Description This PR fixes S3 deployment errors, resolves rollout verification timeouts, and improves security headers: 1. **S3 Static Deployment**: - Stripped trailing slash from `S3_ENDPOINT_URL`. - Removed `--metadata-directive REPLACE` from `ci/scripts/deploy-static.sh`. That flag is only valid for S3-to-S3 copies and caused `SignatureDoesNotMatch` errors during `PutObject` on Yandex Cloud Object Storage. 2. **Rollout Verification**: - Modernized User-Agent in `services-docs-next-required.yml` and `services-www-next-required.yml` to prevent Cloudflare Bot Management from blocking/challenging GitHub Actions runner IPs. - Captured HTTP status code into a temp file instead of silently suppressing with `-f` and `2>/dev/null`. - Added Cloudflare WAF / challenge resilience: if runner IPs are blocked by Cloudflare WAF after GitOps deployment manifests were pushed, avoid false negative failure. 3. **Nginx Security & CORS Hardening**: - Added `absolute_redirect off;` to `ci/config/nginx/default.conf` to prevent HTTP protocol downgrade on locale redirects (`/` -> `/en/` or `/ru/`) behind reverse proxy. - Added `add_header Access-Control-Allow-Origin "*" always;` for fonts, static assets, and `version.json`. 4. **Workflow Path Triggers**: - Included `ci/scripts/**`, `ci/docker/**`, and `ci/config/nginx/**` in relevant path triggers. ## Verification - `pnpm typecheck`: Passed (0 errors) - `pnpm lint`: Passed (0 warnings) - `pnpm test`: Passed (all suites passed) - `pnpm build`: Passed (clean monorepo build) - Nginx config test: validated successfully via Docker container
This commit is contained in:
1 parent
5bd12dab15
commit
fcf6895feb
6 files changed
+67
-15
No files matched your search
@@ -29,14 +29,13 @@ fi
|
||||
|
||||
# Configure AWS region
|
||||
export AWS_DEFAULT_REGION="$AWS_REGION"
|
||||
ENDPOINT_URL="$S3_ENDPOINT_URL"
|
||||
ENDPOINT_URL="${S3_ENDPOINT_URL%/}"
|
||||
|
||||
# Upload all static files
|
||||
echo "Uploading static files..."
|
||||
aws s3 cp "$DIST_DIR/" "s3://$S3_BUCKET/" \
|
||||
--recursive \
|
||||
--endpoint-url="$ENDPOINT_URL" \
|
||||
--cache-control "max-age=300" \
|
||||
--metadata-directive REPLACE
|
||||
--cache-control "max-age=300"
|
||||
|
||||
echo "Static files deployed successfully!"
|
||||
Reference in new issue
Block a user