turing-lib 2.1.6

Turing library for Rust
Documentation
name: Rust

on:
    push:
        branches: [main]
        tags:
            - "*"
    pull_request:
        branches: [main]

env:
    CARGO_TERM_COLOR: always

jobs:
    fmt:
        runs-on: ubuntu-latest
        steps:
            - name: Checkout repository
              uses: actions/checkout@v3

            - name: Install latest stable
              uses: actions-rs/toolchain@v1
              with:
                  toolchain: stable
                  override: true
                  components: rustfmt

            - name: Check code format
              run: cargo fmt --all -- --check

    stable-build:
        runs-on: ubuntu-latest

        steps:
            - name: Install dependencies
              run: sudo apt-get update && sudo apt-get --assume-yes install libfontconfig1-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libspeechd-dev libxkbcommon-dev libssl-dev librust-atk-dev libwebkit2gtk-4.0-dev libsoup2.4-dev

            - name: Install wasm target
              run: rustup target add wasm32-unknown-unknown

            - name: Checkout repository
              uses: actions/checkout@v3

            - name: Install latest stable
              uses: actions-rs/toolchain@v1
              with:
                  toolchain: stable
                  override: true
                  components: rustfmt, clippy

            - name: Build debug
              run: cargo build --verbose

            - name: Build release
              run: cargo build --release --verbose
            
            - name: Build wasm32
              run: cargo build --target wasm32-unknown-unknown --verbose

            - uses: actions/cache@v3
              id: stable-cargo-build
              with:
                  path: |
                      ~/.cargo/bin/
                      ~/.cargo/registry/index/
                      ~/.cargo/registry/cache/
                      ~/.cargo/git/db/
                      .
                  key: ${{ runner.os }}-stable-cargo-${{ hashFiles('**/Cargo.lock') }}

    stable-tests:
        runs-on: ubuntu-latest
        needs: ["stable-build"]
        steps:
            - name: Install dependencies
              run: sudo apt-get update && sudo apt-get --assume-yes install libfontconfig1-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libspeechd-dev libxkbcommon-dev libssl-dev librust-atk-dev libwebkit2gtk-4.0-dev libsoup2.4-dev

            - name: Restore cache
              uses: actions/cache@v3
              id: stable-cargo-build
              with:
                  path: |
                      ~/.cargo/bin/
                      ~/.cargo/registry/index/
                      ~/.cargo/registry/cache/
                      ~/.cargo/git/db/
                      .
                  key: ${{ runner.os }}-stable-cargo-${{ hashFiles('**/Cargo.lock') }}

            - name: Checkout repository
              uses: actions/checkout@v3

            - name: Install latest stable
              uses: actions-rs/toolchain@v1
              with:
                  toolchain: stable
                  override: true
                  components: rustfmt, clippy

            - name: Cargo test debug
              run: cargo test --all-features --verbose

            - name: Cargo test release
              run: cargo test --release --all-features --verbose

    nightly-build:
        runs-on: ubuntu-latest
        steps:
            - name: Install dependencies
              run: sudo apt-get update && sudo apt-get --assume-yes install libfontconfig1-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libspeechd-dev libxkbcommon-dev libssl-dev librust-atk-dev libwebkit2gtk-4.0-dev libsoup2.4-dev

            - name: Checkout repository
              uses: actions/checkout@v3

            - name: Install latest nightly
              uses: actions-rs/toolchain@v1
              with:
                  toolchain: nightly
                  override: true
                  components: rustfmt, clippy

            - name: Build debug
              run: cargo build --verbose

            - name: Build release
              run: cargo build --release --verbose

            - uses: actions/cache@v2
              id: nightly-cargo-build
              with:
                  path: |
                      ~/.cargo/bin/
                      ~/.cargo/registry/index/
                      ~/.cargo/registry/cache/
                      ~/.cargo/git/db/
                      .
                  key: ${{ runner.os }}-stable-cargo-${{ hashFiles('**/Cargo.lock') }}

    nightly-tests:
        runs-on: ubuntu-latest
        needs: ["nightly-build"]
        steps:
            - name: Install dependencies
              run: sudo apt-get update && sudo apt-get --assume-yes install libfontconfig1-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libspeechd-dev libxkbcommon-dev libssl-dev librust-atk-dev libwebkit2gtk-4.0-dev libsoup2.4-dev

            - name: Restore cache
              uses: actions/cache@v2
              id: nightly-cargo-build
              with:
                  path: |
                      ~/.cargo/bin/
                      ~/.cargo/registry/index/
                      ~/.cargo/registry/cache/
                      ~/.cargo/git/db/
                      .
                  key: ${{ runner.os }}-stable-cargo-${{ hashFiles('**/Cargo.lock') }}

            - name: Checkout repository
              uses: actions/checkout@v3

            - name: Install latest nightly
              uses: actions-rs/toolchain@v1
              with:
                  toolchain: nightly
                  override: true
                  components: rustfmt, clippy

            - name: Cargo test debug
              run: cargo test --all-features --verbose

            - name: Cargo test release
              run: cargo test --release --all-features --verbose