From 7143c9e6af395724421d8ef0f8d4eaa4af7a91be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8A=B1=E6=81=8B=E6=B5=81=E5=B9=B4?= <60060922+uint8-t@users.noreply.github.com> Date: Sat, 9 Dec 2023 22:45:21 +0800 Subject: [PATCH] Bug fix of Github Actions --- .github/workflows/mdbook.yml | 92 ++++++++++++++++++++++++------------ 1 file changed, 63 insertions(+), 29 deletions(-) diff --git a/.github/workflows/mdbook.yml b/.github/workflows/mdbook.yml index fae61e8..3798845 100644 --- a/.github/workflows/mdbook.yml +++ b/.github/workflows/mdbook.yml @@ -1,48 +1,82 @@ -name: Deploy CSBasicKnowledge mdbook +# Sample workflow for building and deploying a mdBook site to GitHub Pages +# +# To get started with mdBook see: https://rust-lang.github.io/mdBook/index.html +# +name: Deploy CSBasicKnowledge to Pages + on: + # Runs on pushes targeting the default branch push: branches: - main - pull_request: - branches: - - main # Allows you to run this workflow manually from the Actions tab workflow_dispatch: +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + jobs: - deploy: - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} + # Build job + build: runs-on: ubuntu-latest - permissions: - contents: write # To push a branch - pages: write # To push to a GitHub Pages site - id-token: write # To update the deployment status + env: + MDBOOK_VERSION: 0.4.36 + CACHE_KEY: mdbook-cache-0.4.36 steps: - uses: actions/checkout@v4 + + - name: Cache mdbook modules + id: cache-mdbook + uses: actions/cache@v3 + env: + cache-name: cache-mdbook with: - fetch-depth: 0 - - name: Install latest mdbook - run: | - tag=$(curl 'https://api.github.com/repos/rust-lang/mdbook/releases/latest' | jq -r '.tag_name') - url="https://github.com/rust-lang/mdbook/releases/download/${tag}/mdbook-${tag}-x86_64-unknown-linux-gnu.tar.gz" - mkdir mdbook - curl -sSL $url | tar -xz --directory=./mdbook - echo `pwd`/mdbook >> $GITHUB_PATH - - name: Build Book + path: | + ~/.cargo/bin/mdbook + ~/.cargo/registry/index + ~/.cargo/registry/cache + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.MDBOOK_VERSION }} + restore-keys: | + ${{ runner.os }}-build-${{ env.cache-name }}- + ${{ runner.os }}-build- + ${{ runner.os }}- + + - name: Install mdBook run: | - # This assumes your book is in the root of your repository. - # Just add a `cd` here if you need to change to another directory. - mdbook build + if ! command -v mdbook &> /dev/null + then + curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf -y | sh + rustup update + cargo install --version ${MDBOOK_VERSION} mdbook + fi - name: Setup Pages - uses: actions/configure-pages@v2 + id: pages + uses: actions/configure-pages@v4 + - name: Build with mdBook + run: mdbook build - name: Upload artifact - uses: actions/upload-pages-artifact@v1 + uses: actions/upload-pages-artifact@v2 with: - # Upload entire repository - path: 'book' + path: ./book + + # Deployment job + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v1 + uses: actions/deploy-pages@v3