name: CI on: [push, pull_request] env: # Update the language picker in index.hbs to link new languages. LANGUAGES: 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.0 - 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