# Builds the Russian (master) and English (english_version) editions of the # mdBook and deploys them as one GitHub Pages site: # # /APS/ ← Russian # /APS/en/ ← English # name: Deploy mdBook site to Pages on: push: branches: ["master", "english_version"] workflow_dispatch: permissions: contents: read pages: write id-token: write concurrency: group: "pages" cancel-in-progress: false jobs: build: runs-on: ubuntu-latest env: MDBOOK_VERSION: 0.4.36 steps: # ── 1. Checkout master (Russian) ────────────────────────────────────── - name: Checkout master (Russian) uses: actions/checkout@v4 # checks out into $GITHUB_WORKSPACE (i.e. the working directory) # ── 2. Install mdBook ───────────────────────────────────────────────── - name: Install mdBook run: | curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh -s -- -y source "$HOME/.cargo/env" cargo install --version "${MDBOOK_VERSION}" mdbook # ── 3. Build Russian version ────────────────────────────────────────── - name: Prepare Russian sources run: | chmod +x .github/prepare.sh .github/prepare.sh - name: Build Russian (mdbook → ./book/) run: | source "$HOME/.cargo/env" mdbook build # ── 4. Checkout English branch ──────────────────────────────────────── - name: Checkout english_version branch uses: actions/checkout@v4 with: ref: english_version path: english_src # checked out next to the working directory # ── 5. Build English version ────────────────────────────────────────── - name: Prepare English sources run: | cd english_src chmod +x .github/prepare.sh .github/prepare.sh # Use the dedicated English book.toml (sets site-url = "/APS/en/") cp .github/book_en.toml book.toml # Copy language-switcher theme files from the master checkout cp -r ../.github/theme ./theme - name: Build English (mdbook → english_src/book/) run: | source "$HOME/.cargo/env" cd english_src mdbook build # ── 6. Merge artifacts ──────────────────────────────────────────────── - name: Merge English build into Russian book/en/ run: | mkdir -p book/en cp -r english_src/book/. book/en/ # ── 7. Deploy ───────────────────────────────────────────────────────── - name: Setup Pages id: pages uses: actions/configure-pages@v5 - name: Upload Pages artifact uses: actions/upload-pages-artifact@v3 with: path: ./book 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@v4