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 & mdbook-typst-pdf run: | mkdir bin curl -sSL https://github.com/rust-lang/mdBook/releases/download/v0.4.40/mdbook-v0.4.40-x86_64-unknown-linux-gnu.tar.gz | tar -xz --directory=bin curl -sSL https://github.com/KaiserY/mdbook-typst-pdf/releases/download/v0.5.1/mdbook-typst-pdf-x86_64-unknown-linux-musl.tar.xz | tar -xJ --directory=bin --strip-components 1 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://github.com/notofonts/latin-greek-cyrillic/releases/download/NotoSans-v2.013/NotoSans-v2.013.zip unzip Noto_Sans.zip -d fonts/Noto_Sans curl -sL -o Noto_Sans_SC.zip https://github.com/notofonts/noto-cjk/releases/download/Sans2.004/08_NotoSansCJKsc.zip unzip Noto_Sans_SC.zip -d fonts/Noto_Sans_SC curl -sL -o Noto_Sans_Mono.zip https://github.com/notofonts/latin-greek-cyrillic/releases/download/NotoSansMono-v2.014/NotoSansMono-v2.014.zip unzip Noto_Sans_Mono.zip -d fonts/Noto_Sans_Mono curl -sL -o Noto_Sans_KR.zip https://github.com/notofonts/noto-cjk/releases/download/Sans2.004/07_NotoSansCJKkr.zip unzip Noto_Sans_KR.zip -d fonts/Noto_Sans_KR curl -sL -o Noto_Sans_Thai.zip https://github.com/notofonts/thai/releases/download/NotoSansThai-v2.002/NotoSansThai-v2.002.zip unzip Noto_Sans_Thai.zip -d fonts/Noto_Sans_Thai curl -sL -o Noto_Sans_Arabic.zip https://github.com/notofonts/arabic/releases/download/NotoNaskhArabic-v2.018/NotoNaskhArabic-v2.018.zip unzip Noto_Sans_Arabic.zip -d fonts/Noto_Sans_Arabic curl -sL -o Noto_Sans_Devanagari.zip https://github.com/notofonts/devanagari/releases/download/NotoSansDevanagari-v2.004/NotoSansDevanagari-v2.004.zip unzip -: Noto_Sans_Devanagari.zip -d fonts/Noto_Sans_Devanagari curl -sL -o NotoColorEmoji.ttf https://github.com/googlefonts/noto-emoji/raw/main/fonts/NotoColorEmoji.ttf mv NotoColorEmoji.ttf fonts/NotoColorEmoji.ttf 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 curl -sOL https://github.com/notofonts/hebrew/releases/download/NotoSansHebrew-v2.003/NotoSansHebrew-v2.003.zip unzip -: NotoSansHebrew-v2.003.zip mv -v NotoSansHebrew fonts/ 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