scripts: don't build archives when pages haven't been changed (#11825)

* scripts/build.sh: don't build archives when pages haven't been changed

* scripts: don't build the index when pages haven't been changed, fix
deploy.sh

* feat: check for changes before committing in deploy.sh

* cleanup: update scripts/deploy.sh

Co-authored-by: Lena <126529524+acuteenvy@users.noreply.github.com>

---------

Co-authored-by: K.B.Dharun Krishna <kbdharunkrishna@gmail.com>
pull/23/head
Lena 2023-12-25 08:10:22 +01:00 committed by GitHub
parent 9855e2e02c
commit d123d51d17
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 11 deletions

View File

@ -14,14 +14,24 @@ function initialize {
fi
export TLDR_ARCHIVE="tldr.zip"
DIFF="$(git diff --name-only @^ @ | cut -d'/' -f1)"
export DIFF
}
function build_index {
if ! grep -xq "pages.*" <<< "$DIFF"; then
return
fi
npm run build-index
echo "Pages index successfully built."
}
function build_archive {
if ! grep -xq "pages.*" <<< "$DIFF"; then
return
fi
rm -f "$TLDR_ARCHIVE"
cd "$TLDRHOME/"
zip -q -r "$TLDR_ARCHIVE" pages* LICENSE.md index.json
@ -29,19 +39,20 @@ function build_archive {
}
function build_translation_archives {
local source_directory="$TLDRHOME"
local target_directory="$TLDR_LANG_ARCHIVES_DIRECTORY"
local source_directory target_directory lang archive_name
source_directory="$TLDRHOME"
target_directory="$TLDR_LANG_ARCHIVES_DIRECTORY"
mkdir -p "$target_directory"
rm -f "$target_directory"/*
for lang_dir in "$source_directory"/pages*; do
# Skip symlinks (pages.en) and things that are not directories
if [[ ! -d $lang_dir || -h $lang_dir ]]; then
lang=$(basename "$lang_dir")
# Skip symlinks (pages.en), files outside pages* and directories that haven't been changed.
if [[ ! -d $lang_dir || -h $lang_dir ]] || ! grep -Fxq "$lang" <<< "$DIFF"; then
continue
fi
local lang=$(basename "$lang_dir")
local archive_name="tldr-$lang.zip"
archive_name="tldr-$lang.zip"
# Create the zip archive
@ -53,7 +64,9 @@ function build_translation_archives {
done
cd "$target_directory"
cp tldr-pages.zip tldr-pages.en.zip
if grep -Fxq pages <<< "$DIFF"; then
cp tldr-pages.zip tldr-pages.en.zip
fi
}
###################################

View File

@ -30,21 +30,26 @@ function initialize {
function upload_assets {
git clone --quiet --depth 1 git@github.com:${SITE_REPO_SLUG}.git "$SITE_HOME"
mv -f "$TLDR_ARCHIVE" "$SITE_HOME/assets/"
[[ -f "$TLDR_ARCHIVE" ]] && mv -f "$TLDR_ARCHIVE" "$SITE_HOME/assets/"
find "$TLDR_LANG_ARCHIVES_DIRECTORY" -maxdepth 1 -name "*.zip" -exec mv -f {} "$SITE_HOME/assets/" \;
rm -rf "$TLDR_LANG_ARCHIVES_DIRECTORY"
cp -f "$TLDRHOME/index.json" "$SITE_HOME/assets/"
[[ -f "$TLDRHOME/index.json" ]] && cp -f "$TLDRHOME/index.json" "$SITE_HOME/assets/"
find "$TLDR_PDF_FILES_DIRECTORY" -maxdepth 1 -name "*.pdf" -exec mv -f {} "$SITE_HOME/assets/" \;
rm -rf "$TLDR_PDF_FILES_DIRECTORY"
cd "$SITE_HOME/assets"
sha256sum -- index.json *.zip > tldr.sha256sums
# Check if there are changes before committing and pushing.
if git diff --quiet; then
echo "No changes to deploy."
return
fi
git add -A
git commit -m "[GitHub Actions] uploaded assets after commit tldr-pages/tldr@${GITHUB_SHA}"
git push -q
echo "Assets (pages archive, index) deployed to static site."
echo "Assets (pages archive, index and checksum) deployed to the static site."
}
###################################