mirror of
https://github.com/ziglang/zig.git
synced 2025-12-06 22:33:08 +00:00
CI: update_download_page: change docs deployment
The original impetus for making a change here was a typo in --add-header causing the script to fail. However, upon inspection, I was alarmed that we were making a --recursive upload to the *root directory* of ziglang.org. This could result in garbage files being uploaded to the website, or important files being overwritten. As I addressed this concern, I decided to take on file compression as well. Removed compression prior to sending to S3. I am vetoing pre-compressing objects for the following reasons: * It prevents clients from working which do not support gzip encoding. * It breaks a premise that objects on S3 are stored 1-to-1 with what is on disk. * It prevents Cloudflare from using a more efficient encoding, such as brotli, which they have started doing recently. These systems such as Cloudflare or Fastly already do compression on the fly, and we should interop with these systems instead of fighting them. Cloudfront has an arbitrary limit of 9.5 MiB for auto-compression. I looked and did not see a way to increase this limit. The data.js file is currently 16 MiB. In order to fix this problem, we need to do one of the following things: * Reduce the size of data.js to less than 9.5 MiB. * Figure out how to adjust the Cloudfront settings to increase the max size for auto-compressed objects. * Migrate to Fastly. Fastly appears to not have this limitation. Note that we already plan to migrate to Fastly for the website.
This commit is contained in:
parent
9a0cb34c73
commit
c5f1b3224f
@ -101,32 +101,43 @@ CIDIR="$(pwd)"
|
|||||||
|
|
||||||
cd "$HOME"
|
cd "$HOME"
|
||||||
|
|
||||||
# Upload new stdlib autodocs
|
# Update autodocs and langref directly to S3 in order to prevent the
|
||||||
mkdir -p docs_to_upload/documentation/master/std/
|
# www.ziglang.org git repo from growing too big.
|
||||||
gzip -c -9 "$ZIGDIR/docs/std/index.html" > docs_to_upload/documentation/master/std/index.html
|
|
||||||
gzip -c -9 "$ZIGDIR/docs/std/data.js" > docs_to_upload/documentation/master/std/data.js
|
|
||||||
gzip -c -9 "$ZIGDIR/docs/std/main.js" > docs_to_upload/documentation/master/std/main.js
|
|
||||||
gzip -c -9 "$LANGREF" > docs_to_upload/documentation/master/index.html
|
|
||||||
$S3CMD put -P --no-mime-magic --recursive --add-header="Content-Encoding:gzip" --add-header="Cache-Control: max-age=0, must-revalidate" "docs_to_upload/" s3://ziglang.org/
|
|
||||||
|
|
||||||
mkdir -p docs_src_to_upload/documentation/master/std/
|
# Please do not edit this script to pre-compress the artifacts before they hit
|
||||||
cp -r "$ZIGDIR/docs/std/src" docs_src_to_upload/documentation/master/std/
|
# S3. This prevents the website from working on browsers that do not support gzip
|
||||||
$S3CMD put -P --no-mime-magic --recursive --add-header:"Content-Type:text/html" --add-header="Cache-Control: max-age=0, must-revalidate" "docs_src_to_upload/" s3://ziglang.org/
|
# encoding. Cloudfront will automatically compress files if they are less than
|
||||||
|
# 9.5 MiB, and the client advertises itself as capable of decompressing.
|
||||||
|
# The data.js file is currently 16 MiB. In order to fix this problem, we need to do
|
||||||
|
# one of the following things:
|
||||||
|
# * Reduce the size of data.js to less than 9.5 MiB.
|
||||||
|
# * Figure out how to adjust the Cloudfront settings to increase the max size for
|
||||||
|
# auto-compressed objects.
|
||||||
|
# * Migrate to fastly.
|
||||||
|
$S3CMD put -P --no-mime-magic \
|
||||||
|
--add-header="Cache-Control: max-age=0, must-revalidate" \
|
||||||
|
"$LANGREF" s3://ziglang.org/documentation/master/index.html
|
||||||
|
|
||||||
## Copy without compression:
|
$S3CMD put -P --no-mime-magic \
|
||||||
# mkdir -p docs_to_upload/documentation/master/std/
|
--add-header="Cache-Control: max-age=0, must-revalidate" \
|
||||||
# cp "$ZIGDIR/docs/std/index.html" docs_to_upload/documentation/master/std/index.html
|
"$ZIGDIR/docs/std/index.html" s3://ziglang.org/documentation/master/std/index.html
|
||||||
# cp "$ZIGDIR/docs/std/data.js" docs_to_upload/documentation/master/std/data.js
|
|
||||||
# cp "$ZIGDIR/docs/std/main.js" docs_to_upload/documentation/master/std/main.js
|
$S3CMD put -P --no-mime-magic \
|
||||||
# cp "$LANGREF" docs_to_upload/documentation/master/index.html
|
--add-header="Cache-Control: max-age=0, must-revalidate" \
|
||||||
# $S3CMD put -P --no-mime-magic --recursive --add-header="Cache-Control: max-age=0, must-revalidate" "docs_to_upload/" s3://ziglang.org/
|
"$ZIGDIR/docs/std/main.js" s3://ziglang.org/documentation/master/std/main.js
|
||||||
|
|
||||||
|
$S3CMD put -P --no-mime-magic \
|
||||||
|
--add-header="Cache-Control: max-age=0, must-revalidate" \
|
||||||
|
"$ZIGDIR/docs/std/data.js" s3://ziglang.org/documentation/master/std/data.js
|
||||||
|
|
||||||
|
$S3CMD put -P --no-mime-magic \
|
||||||
|
--add-header="cache-control: public, max-age=31536000, immutable" \
|
||||||
|
"$HOME/$SRC_TARBALL" s3://ziglang.org/builds/
|
||||||
|
|
||||||
git clone --depth 1 git@github.com:ziglang/www.ziglang.org.git
|
git clone --depth 1 git@github.com:ziglang/www.ziglang.org.git
|
||||||
cd www.ziglang.org
|
cd www.ziglang.org
|
||||||
WWWDIR="$(pwd)"
|
WWWDIR="$(pwd)"
|
||||||
|
|
||||||
$S3CMD put -P --no-mime-magic --add-header="cache-control: public, max-age=31536000, immutable" "$HOME/$SRC_TARBALL" s3://ziglang.org/builds/
|
|
||||||
|
|
||||||
cd "$WWWDIR"
|
cd "$WWWDIR"
|
||||||
cp "$CIDIR/out/index.json" data/releases.json
|
cp "$CIDIR/out/index.json" data/releases.json
|
||||||
git add data/releases.json
|
git add data/releases.json
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user