diff --git a/.github/workflows/page.yml b/.github/workflows/page.yml index 558d314..45fb2de 100644 --- a/.github/workflows/page.yml +++ b/.github/workflows/page.yml @@ -1,29 +1,75 @@ name: page CI - -on: - push: - branches: - - master +on: [push, pull_request] jobs: - build-and-deploy: - name: Build and Deploy + test: + name: Run tests runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - - name: Install Rust - uses: actions-rs/toolchain@v1 - with: - profile: minimal - - - name: Build the Rust book - run: | - cargo install mdbook - mdbook build - + - uses: actions/checkout@master + - name: Update rustup + run: rustup self update + - name: Install Rust + run: | + rustup set profile minimal + rustup toolchain install 1.57 -c rust-docs + rustup default 1.57 + - name: Install mdbook + run: | + mkdir bin + curl -sSL https://github.com/rust-lang/mdBook/releases/download/v0.4.14/mdbook-v0.4.14-x86_64-unknown-linux-gnu.tar.gz | tar -xz --directory=bin + echo "$(pwd)/bin" >> ${GITHUB_PATH} + - name: Report versions + run: | + rustup --version + rustc -Vv + mdbook --version + - name: Run tests + run: mdbook test + lint: + name: Run lints + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + - name: Update rustup + run: rustup self update + - name: Install Rust + run: | + rustup set profile minimal + rustup toolchain install nightly -c rust-docs + rustup override set nightly + - name: Install mdbook + run: | + mkdir bin + curl -sSL https://github.com/rust-lang/mdBook/releases/download/v0.4.14/mdbook-v0.4.14-x86_64-unknown-linux-gnu.tar.gz | tar -xz --directory=bin + echo "$(pwd)/bin" >> ${GITHUB_PATH} + - name: Install aspell + run: sudo apt install aspell + - name: Install shellcheck + run: sudo apt install shellcheck + - name: Report versions + run: | + rustup --version + rustc -Vv + mdbook --version + aspell --version + shellcheck --version + - name: Shellcheck + run: find . -name '*.sh' | xargs shellcheck + - name: Spellcheck + run: bash ci/spellcheck.sh list + - name: Lint for local file paths + run: | + mdbook build + cargo run --bin lfp src + - name: Validate references + run: bash ci/validate.sh + deploy: + if: ${{ github.ref == 'refs/heads/master' }} + name: Deploy + runs-on: ubuntu-latest + needs: [test, lint] + steps: - name: Deploy to GitHub Pages uses: peaceiris/actions-gh-pages@v3 with: