name: Publish on: push: branches: - main workflow_dispatch: permissions: contents: read pages: write id-token: write # Allow one concurrent deployment concurrency: group: pages cancel-in-progress: true env: CARGO_TERM_COLOR: always # Update the language picker in index.hbs to link new languages. LANGUAGES: bn da de es fa fr it ja ko pt-BR zh-CN zh-TW jobs: publish: environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 # We need the full history for build.sh below. - name: Setup Rust cache uses: ./.github/workflows/setup-rust-cache - name: Install mdbook uses: ./.github/workflows/install-mdbook - name: Build course in English run: .github/workflows/build.sh en book - name: Build all translations run: | for po_lang in ${{ env.LANGUAGES }}; do .github/workflows/build.sh $po_lang book/$po_lang mv book/$po_lang/html book/html/$po_lang done - name: Setup Pages uses: actions/configure-pages@v4 - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: path: book/html - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v4