| #!/bin/bash | |
| # Compress doc artifacts and name them based on the commit, or the date if | |
| # commit is not available. | |
| set -euox pipefail | |
| # Try to get short commit hash, fallback to date | |
| if [ -n "$HEAD_SHA" ]; then | |
| short_rev=$(echo "${HEAD_SHA}" | cut -c1-8) | |
| else | |
| short_rev=$(git rev-parse --short HEAD || date -u +'%Y-%m-%dT%H%M%SZ') | |
| fi | |
| # Try to get branch, fallback to none | |
| branch=$(git branch --show-current || echo) | |
| if [ -n "$branch" ]; then | |
| # Strip automation/bors/ prefix if present | |
| branch="${branch#automation/bors/}-" | |
| fi | |
| if [ "${GITHUB_EVENT_NAME:=none}" = "pull_request" ]; then | |
| pr_num=$(echo "$GITHUB_REF_NAME" | cut -d'/' -f1) | |
| name="doc-${pr_num}-${short_rev}" | |
| else | |
| name="doc-${branch}${short_rev}" | |
| fi | |
| if [ -d "obj/staging/doc" ]; then | |
| mkdir -p obj/artifacts/doc | |
| # Level 12 seems to give a good tradeoff of time vs. space savings | |
| ZSTD_CLEVEL=12 ZSTD_NBTHREADS=4 \ | |
| tar --zstd -cf "obj/artifacts/doc/${name}.tar.zst" -C obj/staging/doc . | |
| ls -lh obj/artifacts/doc | |
| fi | |
| # Set this environment variable for future use if running in CI | |
| if [ -n "$GITHUB_ENV" ]; then | |
| echo "DOC_ARTIFACT_NAME=${name}" >> "$GITHUB_ENV" | |
| fi |