This commit is contained in:
73
.github/workflows/release.yml
vendored
73
.github/workflows/release.yml
vendored
@@ -14,7 +14,7 @@ permissions:
|
||||
env:
|
||||
MKDOCS_CONFIG: mkdocs/mkdocs.yml
|
||||
MKDOCS_STRICT: ${{ vars.MKDOCS_STRICT || 'true' }}
|
||||
SKIP_DOCX: f${{ vars.SKIP_DOCX || 'false' }}e
|
||||
SKIP_DOCX: ${{ vars.SKIP_DOCX || 'false' }}
|
||||
|
||||
jobs:
|
||||
publish:
|
||||
@@ -131,26 +131,63 @@ jobs:
|
||||
|
||||
- name: Publish prerelease
|
||||
if: startsWith(github.ref_name, 'rc') || startsWith(github.ref_name, 'draft')
|
||||
uses: softprops/action-gh-release@v2
|
||||
with:
|
||||
prerelease: true
|
||||
name: ${{ github.ref_name }}
|
||||
tag_name: ${{ github.ref_name }}
|
||||
body_path: ${{ runner.temp }}/release-notes.md
|
||||
overwrite_file: true
|
||||
files: |
|
||||
${{ runner.temp }}/mkdocs_out/site_offline/${{ github.ref_name }}.zip
|
||||
${{ runner.temp }}/pandoc/${{ github.ref_name }}-${{ env.SHORT_SHA }}.docx
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
|
||||
TAG="${GITHUB_REF_NAME}"
|
||||
ZIP_PATH="${RUNNER_TEMP}/mkdocs_out/site_offline/${TAG}.zip"
|
||||
DOCX_PATH="${RUNNER_TEMP}/pandoc/${TAG}-${SHORT_SHA}.docx"
|
||||
|
||||
ASSETS=("${ZIP_PATH}")
|
||||
if [ "${SKIP_DOCX}" != "true" ] && [ -f "${DOCX_PATH}" ]; then
|
||||
mapfile -t OLD_DOCX_ASSETS < <(
|
||||
gh release view "${TAG}" --json assets --jq '.assets[].name' 2>/dev/null \
|
||||
| grep -E "^${TAG}-[0-9a-f]{7}[.]docx$" || true
|
||||
)
|
||||
for ASSET in "${OLD_DOCX_ASSETS[@]}"; do
|
||||
gh release delete-asset "${TAG}" "${ASSET}" --yes
|
||||
done
|
||||
|
||||
ASSETS+=("${DOCX_PATH}")
|
||||
fi
|
||||
|
||||
if gh release view "${TAG}" >/dev/null 2>&1; then
|
||||
gh release edit "${TAG}" \
|
||||
--title "${TAG}" \
|
||||
--notes-file "${RUNNER_TEMP}/release-notes.md" \
|
||||
--prerelease
|
||||
else
|
||||
gh release create "${TAG}" \
|
||||
--title "${TAG}" \
|
||||
--notes-file "${RUNNER_TEMP}/release-notes.md" \
|
||||
--prerelease
|
||||
fi
|
||||
|
||||
gh release upload "${TAG}" "${ASSETS[@]}" --clobber
|
||||
|
||||
- name: Publish release
|
||||
if: startsWith(github.ref_name, 'v')
|
||||
uses: softprops/action-gh-release@v2
|
||||
with:
|
||||
name: ${{ github.ref_name }}
|
||||
tag_name: ${{ github.ref_name }}
|
||||
body_path: ${{ runner.temp }}/release-notes.md
|
||||
files: |
|
||||
${{ runner.temp }}/mkdocs_out/site_offline/${{ github.ref_name }}.zip
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
|
||||
TAG="${GITHUB_REF_NAME}"
|
||||
ZIP_PATH="${RUNNER_TEMP}/mkdocs_out/site_offline/${TAG}.zip"
|
||||
|
||||
if gh release view "${TAG}" >/dev/null 2>&1; then
|
||||
gh release edit "${TAG}" \
|
||||
--title "${TAG}" \
|
||||
--notes-file "${RUNNER_TEMP}/release-notes.md"
|
||||
else
|
||||
gh release create "${TAG}" \
|
||||
--title "${TAG}" \
|
||||
--notes-file "${RUNNER_TEMP}/release-notes.md"
|
||||
fi
|
||||
|
||||
gh release upload "${TAG}" "${ZIP_PATH}" --clobber
|
||||
|
||||
- name: Checkout gh-pages branch
|
||||
uses: actions/checkout@v4
|
||||
|
||||
Reference in New Issue
Block a user