Merge pull request #63 from Oxygen1a1/main #135
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Generate Release PDF | |
# 感谢 Derived Cat (@hooyuser) 提供的自动发布小脚本! | |
on: | |
push: | |
branches: | |
- main | |
paths-ignore: | |
- '.gitignore' | |
- 'README.md' | |
- 'examples' | |
- 'CMakeLists.txt' | |
- 'misc' | |
env: | |
MIRROR_SITE_URL: https://142857.red/files | |
MIRROR_SITE_HOOK: https://142857.red/hooks/update_cppguidebook | |
MIRROR_SITE_TOKEN: ${{ secrets.SEVEN_TOKEN }} | |
jobs: | |
build_mkdocs: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
steps: | |
- name: Set up Git repository | |
uses: actions/checkout@v4 | |
- name: Prepare Mkdocs environment | |
run: | | |
pip install -r requirements.txt | |
- name: Compile Mkdocs document | |
run: | | |
mkdocs build | |
- name: Deploy to GitHub Pages | |
uses: peaceiris/actions-gh-pages@v4 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
publish_dir: ./site | |
- name: Install Fonts | |
run: | | |
sudo apt-get install -y fonts-noto-cjk | |
- name: Prepare Puppeteer environment | |
run: | | |
npm install puppeteer | |
- name: Compile PDF document | |
run: | | |
node misc/export_to_pdf.js file://$PWD/site/print_page/index.html cppguidebook.pdf "✝️小彭大典✝️" | |
du -h cppguidebook.pdf | |
- name: Generate ZIP archive | |
run: | | |
cd site && zip -r ../cppguidebook-site.zip . | |
- name: Delete old Release | |
uses: actions/github-script@v7 | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
script: | | |
const { owner, repo } = context.repo | |
try { | |
const { data: { id } } = await github.rest.repos.getLatestRelease({ owner, repo }) | |
await github.rest.repos.deleteRelease({ owner, repo, release_id: id }) | |
} catch {} | |
- name: Generate release tag | |
id: tag | |
run: | | |
echo "release_date=$(TZ=Asia/Shanghai date +"%Y 年 %m 月 %d 日 %H 点 %M 分")" >> $GITHUB_OUTPUT | |
echo "release_tag=latest_$(date +"%Y-%m-%d_%H-%M")" >> $GITHUB_OUTPUT | |
- name: Release on GitHub | |
uses: softprops/action-gh-release@v2 | |
with: | |
name: 伟大,无需多言 | |
body: | | |
小彭老师发布的最新 C++ 大典,更新时间 ${{ steps.tag.outputs.release_date }} | |
> GitHub 卡顿,无法下载?访问 [小彭老师自己维护的镜像](${{ env.MIRROR_SITE_URL }}/cppguidebook.pdf)。 | |
> 喜欢在线阅读?访问 [GitHub Pages](https://parallel101.github.io/cppguidebook) | |
tag_name: ${{ steps.tag.outputs.release_tag }} | |
files: | | |
cppguidebook.pdf | |
cppguidebook-site.zip | |
- name: Publish to mirror site | |
continue-on-error: true | |
run: | | |
curl -L -X POST ${{ env.MIRROR_SITE_HOOK }} -d token=${{ env.MIRROR_SITE_TOKEN }} -d tag=${{ steps.tag.outputs.release_tag }} |