This commit is contained in:
73
.github/workflows/release.yml
vendored
73
.github/workflows/release.yml
vendored
@@ -14,7 +14,7 @@ permissions:
|
|||||||
env:
|
env:
|
||||||
MKDOCS_CONFIG: mkdocs/mkdocs.yml
|
MKDOCS_CONFIG: mkdocs/mkdocs.yml
|
||||||
MKDOCS_STRICT: ${{ vars.MKDOCS_STRICT || 'true' }}
|
MKDOCS_STRICT: ${{ vars.MKDOCS_STRICT || 'true' }}
|
||||||
SKIP_DOCX: f${{ vars.SKIP_DOCX || 'false' }}e
|
SKIP_DOCX: ${{ vars.SKIP_DOCX || 'false' }}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
publish:
|
publish:
|
||||||
@@ -131,26 +131,63 @@ jobs:
|
|||||||
|
|
||||||
- name: Publish prerelease
|
- name: Publish prerelease
|
||||||
if: startsWith(github.ref_name, 'rc') || startsWith(github.ref_name, 'draft')
|
if: startsWith(github.ref_name, 'rc') || startsWith(github.ref_name, 'draft')
|
||||||
uses: softprops/action-gh-release@v2
|
env:
|
||||||
with:
|
GH_TOKEN: ${{ github.token }}
|
||||||
prerelease: true
|
run: |
|
||||||
name: ${{ github.ref_name }}
|
set -euo pipefail
|
||||||
tag_name: ${{ github.ref_name }}
|
|
||||||
body_path: ${{ runner.temp }}/release-notes.md
|
TAG="${GITHUB_REF_NAME}"
|
||||||
overwrite_file: true
|
ZIP_PATH="${RUNNER_TEMP}/mkdocs_out/site_offline/${TAG}.zip"
|
||||||
files: |
|
DOCX_PATH="${RUNNER_TEMP}/pandoc/${TAG}-${SHORT_SHA}.docx"
|
||||||
${{ runner.temp }}/mkdocs_out/site_offline/${{ github.ref_name }}.zip
|
|
||||||
${{ runner.temp }}/pandoc/${{ github.ref_name }}-${{ env.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
|
- name: Publish release
|
||||||
if: startsWith(github.ref_name, 'v')
|
if: startsWith(github.ref_name, 'v')
|
||||||
uses: softprops/action-gh-release@v2
|
env:
|
||||||
with:
|
GH_TOKEN: ${{ github.token }}
|
||||||
name: ${{ github.ref_name }}
|
run: |
|
||||||
tag_name: ${{ github.ref_name }}
|
set -euo pipefail
|
||||||
body_path: ${{ runner.temp }}/release-notes.md
|
|
||||||
files: |
|
TAG="${GITHUB_REF_NAME}"
|
||||||
${{ runner.temp }}/mkdocs_out/site_offline/${{ github.ref_name }}.zip
|
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
|
- name: Checkout gh-pages branch
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|||||||
Reference in New Issue
Block a user