| name: CI |
| on: [push, pull_request] |
| |
| env: |
| # Update the language picker in index.hbs to link new languages. |
| LANGUAGES: ja |
| |
| jobs: |
| test: |
| name: Run tests |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v4 |
| with: |
| # We need the full history below. |
| fetch-depth: 0 |
| |
| - name: Update rustup |
| run: rustup self update |
| |
| - name: Install Rust |
| run: | |
| rustup set profile minimal |
| rustup toolchain install nightly -c rust-docs |
| rustup default nightly |
| |
| - name: Install mdbook |
| run: | |
| mkdir bin |
| curl -sSL https://github.com/rust-lang/mdBook/releases/download/v0.4.15/mdbook-v0.4.15-x86_64-unknown-linux-gnu.tar.gz | tar -xz --directory=bin |
| echo "$(pwd)/bin" >> ${GITHUB_PATH} |
| |
| - name: Install mdbook-i18n-helpers |
| run: | |
| cargo install mdbook-i18n-helpers --locked --version 0.3.1 |
| |
| - name: Report versions |
| run: | |
| rustup --version |
| rustc -Vv |
| mdbook --version |
| |
| - name: Run tests |
| run: mdbook test |
| |
| - name: Build HTML |
| run: mdbook build |
| |
| - name: Check for broken links |
| run: | |
| curl -sSLo linkcheck.sh \ |
| https://raw.githubusercontent.com/rust-lang/rust/master/src/tools/linkchecker/linkcheck.sh |
| sh linkcheck.sh --all rust-by-example |
| |
| - name: Build all translations |
| run: | |
| for po_lang in ${{ env.LANGUAGES }}; do |
| POT_CREATION_DATE=$(grep --max-count 1 '^"POT-Creation-Date:' po/$po_lang.po | sed -E 's/".*: (.*)\\n"/\1/') |
| if [[ $POT_CREATION_DATE == "" ]]; then |
| POT_CREATION_DATE=now |
| fi |
| |
| echo "::group::Building $po_lang translation as of $POT_CREATION_DATE" |
| rm -r src/ |
| git restore --source "$(git rev-list -n 1 --before "$POT_CREATION_DATE" @)" src/ |
| |
| # Set language and adjust site URL. Clear the redirects |
| # since they are in sync with the source files, not the |
| # translation. |
| MDBOOK_BOOK__LANGUAGE=$po_lang \ |
| MDBOOK_OUTPUT__HTML__SITE_URL=/rust-by-example/$po_lang/ \ |
| MDBOOK_OUTPUT__HTML__REDIRECT='{}' \ |
| mdbook build -d book/$po_lang |
| echo "::endgroup::" |
| done |
| |
| - name: Upload Artifact |
| uses: actions/upload-artifact@v3 |
| with: |
| name: rust-by-example |
| path: book |