mirror of
https://github.com/1204244136/index-X.git
synced 2025-05-02 12:58:14 +08:00
commit
79465867b5
121
.github/workflows/build-epub-release.yml
vendored
Normal file
121
.github/workflows/build-epub-release.yml
vendored
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
name: Build EPUB Release
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
release-epubs:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout source
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Clean old output
|
||||||
|
run: rm -rf output/
|
||||||
|
|
||||||
|
- name: Create EPUB files
|
||||||
|
run: |
|
||||||
|
mkdir -p output/epubs
|
||||||
|
|
||||||
|
shopt -s nullglob
|
||||||
|
for dir in EPUB/*/ ; do
|
||||||
|
name=$(basename "$dir")
|
||||||
|
zip -r "output/epubs/${name}.epub" "$dir"
|
||||||
|
done
|
||||||
|
|
||||||
|
- name: Create merged ZIPs
|
||||||
|
run: |
|
||||||
|
DATE=$(date +'%Y.%m.%d')
|
||||||
|
cd output/epubs
|
||||||
|
|
||||||
|
Collections=(
|
||||||
|
"All:["
|
||||||
|
"A_Certain_Magical_Index:[S1_"
|
||||||
|
"A_Certain_Magical_Index_New_Testament:[S2_"
|
||||||
|
"A_Certain_Magical_Index_Genesis_Testament:[S3_"
|
||||||
|
"A_Certain_Dark_Side_Item:[S4_"
|
||||||
|
"A_Certain_Magical_Index_SP:[S5_ [S6_"
|
||||||
|
)
|
||||||
|
for entry in "${Collections[@]}"; do
|
||||||
|
ARCHIVE_NAME="${entry%%:*}"
|
||||||
|
PREFIXES="${entry#*:}"
|
||||||
|
|
||||||
|
FILES=""
|
||||||
|
for PREFIX in ${PREFIXES}; do
|
||||||
|
FILES+=" ${PREFIX}*.epub"
|
||||||
|
done
|
||||||
|
|
||||||
|
zip -r ../${ARCHIVE_NAME}.${DATE}.zip ${FILES}
|
||||||
|
done
|
||||||
|
|
||||||
|
cd -
|
||||||
|
|
||||||
|
- name: Generate Release Notes and Rename EPUB files
|
||||||
|
id: release_notes
|
||||||
|
run: |
|
||||||
|
DATE=$(date +'%Y.%m.%d')
|
||||||
|
BASE_URL="https://github.com/${{ github.repository }}/releases/download/auto/"
|
||||||
|
shopt -s nullglob
|
||||||
|
|
||||||
|
NOTE="## 合集\n\n"
|
||||||
|
Collections=(
|
||||||
|
"All:[${DATE}]合集"
|
||||||
|
"A_Certain_Magical_Index:[${DATE}]某魔法的禁书目录 旧约"
|
||||||
|
"A_Certain_Magical_Index_New_Testament:[${DATE}]某魔法的禁书目录 新约"
|
||||||
|
"A_Certain_Magical_Index_Genesis_Testament:[${DATE}]某魔法的禁书目录 创约"
|
||||||
|
"A_Certain_Dark_Side_Item:[${DATE}]某暗部的少女共栖"
|
||||||
|
"A_Certain_Magical_Index_SP:[${DATE}]某魔法的禁书目录 番外"
|
||||||
|
)
|
||||||
|
for entry in "${Collections[@]}"; do
|
||||||
|
ARCHIVE_NAME="${entry%%:*}"
|
||||||
|
NAME="${entry#*:}"
|
||||||
|
NOTE="${NOTE}- [${NAME}](${BASE_URL}${ARCHIVE_NAME}.${DATE}.zip)\n"
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
NOTE="${NOTE}\n## 单行本\n"
|
||||||
|
SERIES_GROUPS=(
|
||||||
|
"某魔法的禁书目录 旧约:[S1_"
|
||||||
|
"某魔法的禁书目录 新约:[S2_"
|
||||||
|
"某魔法的禁书目录 创约:[S3_"
|
||||||
|
"某暗部的少女共栖:[S4_"
|
||||||
|
"某魔法的禁书目录 番外:[S5_ [S6_"
|
||||||
|
)
|
||||||
|
for entry in "${SERIES_GROUPS[@]}"; do
|
||||||
|
LABEL="${entry%%:*}"
|
||||||
|
PREFIXES="${entry#*:}"
|
||||||
|
NOTE="${NOTE}\n### ${LABEL}\n\n"
|
||||||
|
for PREFIX in ${PREFIXES}; do
|
||||||
|
for file in output/epubs/${PREFIX}*.epub; do
|
||||||
|
filename=$(basename "$file")
|
||||||
|
short_name=$(echo "$filename" | grep -oP '\[.*?\]' | tr -d '[]').epub
|
||||||
|
mv "output/epubs/${filename}" "output/epubs/${short_name}"
|
||||||
|
name=$(basename "$filename" .epub)
|
||||||
|
NOTE="${NOTE}- [${name}](${BASE_URL}${short_name})\n"
|
||||||
|
done
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
echo -e "${NOTE}" > output/release_notes.md
|
||||||
|
|
||||||
|
- name: Upload to Release
|
||||||
|
uses: ncipollo/release-action@v1
|
||||||
|
with:
|
||||||
|
tag: auto
|
||||||
|
allowUpdates: true
|
||||||
|
removeArtifacts: true
|
||||||
|
makeLatest: true
|
||||||
|
bodyFile: output/release_notes.md
|
||||||
|
artifacts: |
|
||||||
|
output/All.*.zip
|
||||||
|
output/A_Certain_Magical_Index.*.zip
|
||||||
|
output/A_Certain_Magical_Index_New_Testament.*.zip
|
||||||
|
output/A_Certain_Magical_Index_Genesis_Testament.*.zip
|
||||||
|
output/A_Certain_Dark_Side_Item.*.zip
|
||||||
|
output/A_Certain_Magical_Index_SP.*.zip
|
||||||
|
output/epubs/*.epub
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.TOKEN }}
|
Loading…
x
Reference in New Issue
Block a user