diff options
Diffstat (limited to 'src/doc/rustc-dev-guide/.github/workflows/ci.yml')
-rw-r--r-- | src/doc/rustc-dev-guide/.github/workflows/ci.yml | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/src/doc/rustc-dev-guide/.github/workflows/ci.yml b/src/doc/rustc-dev-guide/.github/workflows/ci.yml new file mode 100644 index 000000000..c571d408d --- /dev/null +++ b/src/doc/rustc-dev-guide/.github/workflows/ci.yml @@ -0,0 +1,80 @@ +name: CI + +on: + push: + branches: + - master + pull_request: + schedule: + # Run at 18:00 UTC every day + - cron: '0 18 * * *' + +jobs: + ci: + if: github.repository == 'rust-lang/rustc-dev-guide' + runs-on: ubuntu-latest + env: + MDBOOK_VERSION: 0.4.12 + MDBOOK_LINKCHECK_VERSION: 0.7.2 + MDBOOK_MERMAID_VERSION: 0.10.0 + MDBOOK_TOC_VERSION: 0.6.1 + DEPLOY_DIR: book/html + BASE_SHA: ${{ github.event.pull_request.base.sha }} + steps: + - uses: actions/checkout@v2 + with: + # linkcheck needs the base commit. + fetch-depth: 0 + + - name: Cache binaries + id: mdbook-cache + uses: actions/cache@v2 + with: + path: | + ~/.cargo/bin + key: ${{ runner.os }}-${{ env.MDBOOK_VERSION }}--${{ env.MDBOOK_LINKCHECK_VERSION }}--${{ env.MDBOOK_TOC_VERSION }}--${{ env.MDBOOK_MERMAID_VERSION }} + + - name: Cache linkcheck + uses: actions/cache@v2 + with: + path: | + ~/book/linkcheck + key: ${{ runner.os }}-${{ hashFiles('./book/linkcheck') }} + + - name: Check line lengths + if: github.event_name != 'push' + run: | + shopt -s globstar + MAX_LINE_LENGTH=100 bash ci/check_line_lengths.sh src/**/*.md + + - name: Install latest nightly Rust toolchain + if: steps.mdbook-cache.outputs.cache-hit != 'true' + uses: actions-rs/toolchain@v1 + with: + toolchain: nightly + override: true + + - name: Install Dependencies + if: steps.mdbook-cache.outputs.cache-hit != 'true' + run: | + cargo install mdbook --version ${{ env.MDBOOK_VERSION }} + cargo install mdbook-linkcheck --version ${{ env.MDBOOK_LINKCHECK_VERSION }} + cargo install mdbook-toc --version ${{ env.MDBOOK_TOC_VERSION }} + cargo install mdbook-mermaid --version ${{ env.MDBOOK_MERMAID_VERSION }} + + - name: Check build + run: mdbook build + + - name: Deploy to gh-pages + if: github.event_name == 'push' + run: | + touch "${{ env.DEPLOY_DIR }}/.nojekyll" + cp CNAME "${{ env.DEPLOY_DIR }}" + cd "${{ env.DEPLOY_DIR }}" + rm -rf .git + git init + git config user.name "Deploy from CI" + git config user.email "" + git add . + git commit -m "Deploy ${GITHUB_SHA} to gh-pages" + git push --quiet -f "https://x-token:${{ secrets.GITHUB_TOKEN }}@github.com/${GITHUB_REPOSITORY}" HEAD:gh-pages |