Revision control
Copy as Markdown
Other Tools
name: CI↩
on:↩
pull_request:↩
push:↩
branches: [master]↩
↩
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages↩
permissions:↩
contents: read↩
pages: write↩
id-token: write↩
checks: write↩
↩
jobs:↩
ci:↩
name: CI↩
needs: [test, clippy, docs]↩
runs-on: ubuntu-latest↩
steps:↩
- name: Done↩
run: exit 0↩
test:↩
name: Tests↩
strategy:↩
fail-fast: false↩
matrix:↩
os: [ubuntu-latest]↩
rust: [1.69.0, nightly]↩
runs-on: ${{ matrix.os }}↩
steps:↩
- uses: actions/checkout@v3↩
- name: Install rust↩
uses: dtolnay/rust-toolchain@master↩
with:↩
toolchain: ${{ matrix.rust }}↩
- name: Ready cache↩
if: matrix.os == 'ubuntu-latest'↩
run: sudo chown -R $(whoami):$(id -ng) ~/.cargo/↩
- name: Cache cargo↩
uses: actions/cache@v1↩
id: cache↩
with:↩
path: ~/.cargo↩
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}↩
- name: Test smart-default↩
run: cargo test --all-targets↩
fmt:↩
name: Rustfmt↩
runs-on: ubuntu-latest↩
steps:↩
- uses: actions/checkout@v3↩
- uses: dtolnay/rust-toolchain@master↩
with:↩
toolchain: nightly↩
components: rustfmt↩
- name: Run fmt --all -- --check↩
run: cargo fmt --all -- --check↩
↩
clippy:↩
name: Clippy↩
runs-on: ubuntu-latest↩
steps:↩
- uses: actions/checkout@v3↩
- uses: dtolnay/rust-toolchain@master↩
with:↩
toolchain: nightly↩
components: clippy↩
- name: Cache cargo↩
uses: actions/cache@v1↩
id: cache↩
with:↩
path: ~/.cargo↩
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}↩
- name: Run clippy --all-targets --↩
uses: actions-rs/clippy-check@v1↩
with:↩
token: ${{ secrets.GITHUB_TOKEN }}↩
args: --all-targets --↩
docs:↩
name: Docs↩
runs-on: ubuntu-latest↩
steps:↩
- uses: actions/checkout@v3↩
- uses: dtolnay/rust-toolchain@master↩
with:↩
toolchain: nightly↩
- name: Cache cargo↩
uses: actions/cache@v1↩
id: cache↩
with:↩
path: ~/.cargo↩
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}↩
- name: Run doc tests↩
run: cargo test --doc↩
- name: Check smart-default docs↩
run: cargo doc --no-deps↩
docs-ghpages:↩
name: Update Docs in GitHub Pages↩
runs-on: ubuntu-latest↩
if: github.ref == 'refs/heads/master'↩
steps:↩
- uses: actions/checkout@v3↩
- name: Build docs↩
env:↩
GITHUB_REPO: ${{ github.repository }}↩
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}↩
run: |-↩
cargo doc --verbose &&↩
echo "<meta http-equiv=refresh content=0;url=smart_default/index.html>" > target/doc/index.html↩
- name: Upload artifact↩
uses: actions/upload-pages-artifact@v1↩
with:↩
path: target/doc↩
deploy-ghpages:↩
environment:↩
name: github-pages↩
url: ${{ steps.deployment.outputs.page_url }}↩
runs-on: ubuntu-latest↩
needs: docs-ghpages↩
if: github.ref == 'refs/heads/master'↩
steps:↩
- name: Deploy to GitHub Pages↩
id: deployment↩
uses: actions/deploy-pages@v1↩