Skip to content

CI

CI #1849

Workflow file for this run

name: CI
on:
merge_group:
pull_request:
jobs:
test:
name: Test
runs-on: ubuntu-latest
continue-on-error: ${{ matrix.rust == 'nightly' }}
strategy:
matrix:
rust: [stable, nightly]
steps:
- name: Checkout the source code
uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust }}
profile: minimal
override: true
- name: Build chalk-engine without default features
run: cd chalk-engine && cargo build --no-default-features
- name: Build chalk-engine with all features
run: cd chalk-engine && cargo build --all-features
- name: Execute tests for all crates in the workspace
run: cargo test --all
- name: Install mdbook
run: |
cd book
curl -L https://github.com/rust-lang/mdBook/releases/download/v0.4.5/mdbook-v0.4.5-x86_64-unknown-linux-gnu.tar.gz | tar xz
# Add the book directory to the $PATH
echo "$GITHUB_WORKSPACE/book" >> $GITHUB_PATH
- name: Install mdbook-mermaid
run: cargo install mdbook-mermaid
- name: Execute tests for Chalk book
run: cd book && ./mdbook test
- name: Build Chalk book
run: cd book && ./mdbook build
- name: Build documentation for all crates in the workspace
run: cargo doc --all --document-private-items --no-deps
- name: Upload documentation to GitHub Pages
run: |
touch target/doc/.nojekyll
curl -LsSf https://raw.githubusercontent.com/rust-lang/simpleinfra/master/setup-deploy-keys/src/deploy.rs | rustc - -o /tmp/deploy
cp -r book/book/html target/doc/book
(cd target/doc && /tmp/deploy)
env:
GITHUB_DEPLOY_KEY: ${{ secrets.GITHUB_DEPLOY_KEY }}
if: matrix.rust == 'stable' && github.ref == 'refs/heads/master'
fmt:
name: Format
runs-on: ubuntu-latest
steps:
- name: Checkout the source code
uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
components: rustfmt
- name: Check formatting of all crates in the workspace
run: cargo fmt --all -- --check
mdbook-linkcheck:
name: Book link check
runs-on: ubuntu-latest
if: github.ref != 'refs/heads/master'
steps:
- name: Checkout the source code
uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Install mdbook
run: |
cd book
curl -L https://github.com/rust-lang/mdBook/releases/download/v0.4.5/mdbook-v0.4.5-x86_64-unknown-linux-gnu.tar.gz | tar xz
# Add the book directory to the $PATH
echo "$GITHUB_WORKSPACE/book" >> $GITHUB_PATH
- name: Install mdbook-linkcheck
run: cd book && curl -L https://github.com/Michael-F-Bryan/mdbook-linkcheck/releases/download/v0.7.0/mdbook-linkcheck-v0.7.0-x86_64-unknown-linux-gnu.tar.gz | tar xz
- name: Build Chalk book
run: cd book && ./mdbook build
conclusion:
needs: [test, fmt]
# !cancelled() executes the job regardless of whether the previous jobs passed, failed or get skipped.
if: ${{ !cancelled() }}
runs-on: ubuntu-latest
steps:
- name: Conclusion
run: |
# Print the dependent jobs to see them in the CI log
jq -C <<< '${{ toJson(needs) }}'
# Check if all jobs that we depend on (in the needs array) were successful.
jq --exit-status 'all(.result == "success")' <<< '${{ toJson(needs) }}'