|
|
|
name: CI
|
|
|
|
on:
|
|
|
|
# Trigger the workflow on push or pull request,
|
|
|
|
# but only for the main branch
|
|
|
|
push:
|
|
|
|
branches:
|
|
|
|
- main
|
|
|
|
pull_request:
|
|
|
|
branches:
|
|
|
|
- main
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
build:
|
|
|
|
name: Build
|
|
|
|
runs-on: ubuntu-22.04
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@main
|
|
|
|
- name: Update rustup
|
|
|
|
run: rustup self update
|
|
|
|
- name: Install Rust
|
|
|
|
run: |
|
|
|
|
rustup set profile minimal
|
|
|
|
rustup toolchain install 1.74.1 -c rust-docs
|
|
|
|
rustup default 1.74.1
|
|
|
|
- name: Install mdbook
|
|
|
|
run: |
|
|
|
|
mkdir bin
|
|
|
|
curl -sSL https://github.com/rust-lang/mdBook/releases/download/v0.4.36/mdbook-v0.4.36-x86_64-unknown-linux-gnu.tar.gz | tar -xz --directory=bin
|
|
|
|
echo "$(pwd)/bin" >> ${GITHUB_PATH}
|
|
|
|
- name: Install mdbook-typst-pdf
|
|
|
|
run: |
|
|
|
|
mkdir -p bin
|
|
|
|
curl -sSL https://github.com/KaiserY/mdbook-typst-pdf/releases/download/v0.3.1/mdbook-typst-pdf-x86_64-unknown-linux-musl.tar.xz | tar -xf --directory=bin
|
|
|
|
chmod +x bin/mdbook-typst-pdf
|
|
|
|
echo "$(pwd)/bin" >> ${GITHUB_PATH}
|
|
|
|
- name: Install font
|
|
|
|
run: |
|
|
|
|
echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | sudo debconf-set-selections
|
|
|
|
sudo apt-get -y install msttcorefonts
|
|
|
|
mkdir fonts
|
|
|
|
mkdir -p ~/.local/share/fonts
|
|
|
|
curl -sL -o Noto_Sans.zip https://fonts.google.com/download?family=Noto%20Sans
|
|
|
|
unzip Noto_Sans.zip -d fonts/Noto_Sans
|
|
|
|
curl -sL -o Noto_Sans_SC.zip https://fonts.google.com/download?family=Noto%20Sans%20SC
|
|
|
|
unzip Noto_Sans_SC.zip -d fonts/Noto_Sans_SC
|
|
|
|
curl -sL -o Noto_Sans_Mono.zip https://fonts.google.com/download?family=Noto%20Sans%20Mono
|
|
|
|
unzip Noto_Sans_Mono.zip -d fonts/Noto_Sans_Mono
|
|
|
|
rm -fv fonts/Noto_Sans_Mono/NotoSansMono-VariableFont_wdth,wght.ttf
|
|
|
|
curl -sL -o Noto_Sans_KR.zip https://fonts.google.com/download?family=Noto%20Sans%20KR
|
|
|
|
unzip Noto_Sans_KR.zip -d fonts/Noto_Sans_KR
|
|
|
|
curl -sL -o Noto_Sans_Thai.zip https://fonts.google.com/download?family=Noto%20Sans%20Thai
|
|
|
|
unzip Noto_Sans_Thai.zip -d fonts/Noto_Sans_Thai
|
|
|
|
rm -fv fonts/Noto_Sans_Thai/NotoSansThai-VariableFont_wdth,wght.ttf
|
|
|
|
curl -sL -o Noto_Sans_Arabic.zip https://fonts.google.com/download?family=Noto%20Sans%20Arabic
|
|
|
|
unzip Noto_Sans_Arabic.zip -d fonts/Noto_Sans_Arabic
|
|
|
|
curl -sL -o Noto_Sans_Hebrew.zip https://fonts.google.com/download?family=Noto%20Sans%20Hebrew
|
|
|
|
unzip Noto_Sans_Hebrew.zip -d fonts/Noto_Sans_Hebrew
|
|
|
|
curl -sL -o Noto_Sans_Devanagari.zip https://fonts.google.com/download?family=Noto%20Sans%20Devanagari
|
|
|
|
unzip Noto_Sans_Devanagari.zip -d fonts/Noto_Sans_Devanagari
|
|
|
|
rm -fv fonts/Noto_Sans_Devanagari/NotoSansDevanagari-VariableFont_wdth,wght.ttf
|
|
|
|
curl -sL -o Noto_Emoji.zip https://fonts.google.com/download?family=Noto%20Emoji
|
|
|
|
unzip Noto_Emoji.zip -d fonts/Noto_Emoji
|
|
|
|
curl -sL -o times_sans_serif.zip https://dl.dafont.com/dl/?f=times_sans_serif
|
|
|
|
unzip times_sans_serif.zip -d fonts/times_sans_serif
|
|
|
|
mv fonts/* ~/.local/share/fonts/
|
|
|
|
fc-cache -rv
|
|
|
|
- name: Report versions
|
|
|
|
run: |
|
|
|
|
rustup --version
|
|
|
|
rustc -Vv
|
|
|
|
mdbook --version
|
|
|
|
- name: Run mdBook Build
|
|
|
|
run: |
|
|
|
|
mdbook build
|
|
|
|
mv book/html/* book/
|
|
|
|
mv "book/typst-pdf/Rust 程序设计语言 简体中文版.pdf" book/
|
|
|
|
rm -r book/html/
|
|
|
|
rm -rf book/typst-pdf/
|
|
|
|
- name: Deploy gh-pages
|
|
|
|
if: ${{ github.ref == 'refs/heads/main' }}
|
|
|
|
uses: peaceiris/actions-gh-pages@v3
|
|
|
|
with:
|
|
|
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
publish_dir: ./book
|
|
|
|
force_orphan: true
|
|
|
|
enable_jekyll: true
|