teloxide 0.8.0

An elegant Telegram bots framework for Rust
Documentation
on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master, dev ]

name: Continuous integration

env:
  RUSTFLAGS: "--cfg CI_REDIS"

jobs:
  style:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: nightly-2022-02-02
          override: true
          components: rustfmt

      - name: fmt
        uses: actions-rs/cargo@v1
        with:
          command: fmt
          args: --all -- --check 

  clippy:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: nightly-2022-02-02
          override: true
          components: clippy

      - name: clippy
        uses: actions-rs/cargo@v1
        with:
          command: clippy
          args: --all-targets --all-features -- -D warnings

  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        rust: 
          - stable
          - beta
          - nightly
    
        include:
          - rust: stable
            toolchain: stable
            features: "--features full"
          - rust: beta
            toolchain: beta
            features: "--features full"
          - rust: nightly
            toolchain: nightly-2022-01-17
            features: "--all-features"

    steps:
      - uses: actions/checkout@v2
        
      - uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: ${{ matrix.toolchain }}
          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
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: stable
          override: true
      - name: Check the examples
        run: cargo check --examples --features="full"