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