on: push: branches: [ master ] pull_request: branches: [ master, dev ] name: Continuous integration jobs: code-checks: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: nightly override: true components: rustfmt, clippy - name: Cargo fmt run: cargo +nightly fmt --all -- --check - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - name: Cargo clippy run: cargo clippy --all --all-targets --all-features -- -D warnings test: runs-on: ubuntu-latest strategy: matrix: rust: - stable - beta - nightly include: - rust: stable features: "--features \"redis-storage sqlite-storage cbor-serializer bincode-serializer frunk-\"" - rust: beta features: "--features \"redis-storage sqlite-storage cbor-serializer bincode-serializer frunk-\"" - rust: nightly features: "--all-features" steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: ${{ matrix.rust }} override: true - name: Build uses: actions-rs/cargo@v1 with: command: build args: --verbose ${{ matrix.features }} - name: Setup redis run: | sudo apt install redis-server redis-server --port 7777 > /dev/null & redis-server --port 7778 > /dev/null & redis-server --port 7779 > /dev/null & - name: Test uses: actions-rs/cargo@v1 with: command: test args: --verbose ${{ matrix.features }} build-example: runs-on: ubuntu-latest strategy: matrix: example: [ admin_bot, dialogue_bot, heroku_ping_pong_bot, ngrok_ping_pong_bot, dices_bot, shared_state_bot, simple_commands_bot, redis_remember_bot, ] steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - name: Check the example run: cd examples && cd ${{ matrix.example }} && cargo check