Fixed persistent state with outdated data + updated Bincode docs #3005
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
on: | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: [ master ] | |
merge_group: | |
name: Continuous integration | |
env: | |
RUSTFLAGS: "--cfg CI_REDIS --cfg CI_POSTGRES -Dwarnings" | |
RUSTDOCFLAGS: "--cfg docsrs -Dwarnings" | |
RUST_BACKTRACE: short | |
CARGO_INCREMENTAL: 0 | |
CARGO_NET_RETRY: 10 | |
RUSTUP_MAX_RETRIES: 10 | |
# When updating this, also update: | |
# - crates/teloxide-core/src/codegen.rs | |
# - rust-toolchain.toml | |
# - below in the test matrix | |
rust_nightly: nightly-2024-07-03 | |
# When updating this, also update: | |
# - **/README.md | |
# - **/src/lib.rs | |
# - down below in a matrix | |
# - `Cargo.toml` | |
# - **/CHANGELOG.md | |
rust_msrv: 1.80.0 | |
CI: 1 | |
jobs: | |
# Depends on all action that are required for a "successful" CI run. | |
ci-pass: | |
name: CI succeeded | |
runs-on: ubuntu-latest | |
if: always() | |
needs: | |
- fmt | |
- test | |
- check-examples | |
- clippy | |
- doc | |
steps: | |
- name: Check whether the needed jobs succeeded or failed | |
uses: re-actors/alls-green@release/v1 | |
with: | |
jobs: ${{ toJSON(needs) }} | |
fmt: | |
name: fmt | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install Rust ${{ env.rust_nightly }} | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ env.rust_nightly }} | |
components: rustfmt | |
- name: Cache Dependencies | |
uses: Swatinem/rust-cache@v2 | |
- name: Check formatting | |
run: | | |
cargo fmt --all -- --check | |
test: | |
name: Test | |
runs-on: ubuntu-latest | |
services: | |
# Setup Postgres for testing PostgresStorage | |
postgres: | |
image: postgres | |
env: | |
POSTGRES_USER: teloxide | |
POSTGRES_PASSWORD: rewrite_it_in_rust | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
ports: | |
- 5432:5432 | |
strategy: | |
matrix: | |
rust: | |
- stable | |
- beta | |
- nightly | |
- msrv | |
include: | |
- rust: stable | |
toolchain: stable | |
features: "--features full" | |
- rust: beta | |
toolchain: beta | |
features: "--features full" | |
- rust: nightly | |
toolchain: nightly-2024-07-03 | |
features: "--features full nightly" | |
- rust: msrv | |
toolchain: 1.80.0 | |
features: "--features full" | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install Rust ${{ matrix.toolchain }} | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ matrix.toolchain }} | |
- name: Cache Dependencies | |
uses: Swatinem/rust-cache@v2 | |
# Generally MSRV dump is not considered a breaking change in by the Rust community. | |
# Thus a minor or a patch version dump of a dependency of ours, can bump MSRV. | |
# (remember that `cargo` uses newest semver compatible versions by default) | |
# | |
# It's silly to bump MSRV every time minor dependency update does (note that this update can | |
# happen even after our crate is published; so users may need to downgrade crates in | |
# `Cargo.lock` independently of how we test our crates), so we downgrade their versions in | |
# MSRV CI specifically instead. This allows as to | |
# 1. Not update MSRV unless we really need to | |
# 2. Test newest (or at least newer) versions of crates in CI | |
# | |
# Example command: `cargo update -p atomic-write-file@0.1.3 --precise 0.1.2` | |
- name: Downgrade deps for MSRV | |
if: ${{ matrix.rust == 'msrv' }} | |
run: | | |
exit 0 | |
# NB. Don't test (build) examples so we can use non-msrv features in them (--tests/--doc) | |
- name: Compile | |
run: | | |
cargo +${{ matrix.toolchain }} test --tests --no-run --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: Install psql | |
run: | | |
sudo apt install postgresql-client -y | |
- name: Create PostgreSQL databases | |
run: | | |
psql -h localhost -U teloxide -c "CREATE DATABASE test_postgres_json;" | |
psql -h localhost -U teloxide -c "CREATE DATABASE test_postgres_bincode;" | |
psql -h localhost -U teloxide -c "CREATE DATABASE test_postgres_cbor;" | |
env: | |
PGPASSWORD: rewrite_it_in_rust | |
- name: Test unit & integration tests | |
run: | | |
cargo +${{ matrix.toolchain }} test --tests --verbose ${{ matrix.features }} | |
- name: Test documentation tests | |
if: ${{ matrix.rust != 'msrv' }} | |
run: | | |
cargo +${{ matrix.toolchain }} test --doc --verbose ${{ matrix.features }} | |
check-examples: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install Rust stable | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: stable | |
- name: Cache Dependencies | |
uses: Swatinem/rust-cache@v2 | |
- name: Check examples | |
run: | | |
cargo +stable check --examples --features full | |
# TODO: prolly move it to a separate step? | |
- name: Check with no default features | |
run: | | |
cargo +stable check --no-default-features | |
clippy: | |
name: Run linter | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install Rust ${{ env.rust_nightly }} | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ env.rust_nightly }} | |
components: clippy | |
- name: Cache Dependencies | |
uses: Swatinem/rust-cache@v2 | |
- name: clippy | |
run: | | |
cargo clippy --all-targets --features "full nightly" | |
doc: | |
name: check docs | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install Rust ${{ env.rust_nightly }} | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ env.rust_nightly }} | |
- name: Cache Dependencies | |
uses: Swatinem/rust-cache@v2 | |
- name: rustdoc | |
run: | | |
cargo docs # from .cargo/config.toml |