msgpack-schema 1.1.0

A specification language for MessagePack data format
Documentation
on: [push, pull_request]

name: CI

env:
  CARGO_TERM_COLOR: always
  CARGO_INCREMENTAL: 0
  RUST_BACKTRACE: 1
  CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}

jobs:
  check:
    name: Check
    runs-on: ubuntu-latest
    steps:
      - name: Checkout sources
        uses: actions/checkout@v3

      - name: Install stable toolchain
        run: |
          rustup toolchain install stable --profile minimal --no-self-update
          rustup default stable

      - name: Enable Rust build cache
        uses: Swatinem/rust-cache@v2

      - name: Run cargo check
        run: |
          cargo check

  test:
    name: Test
    runs-on: ubuntu-latest
    steps:
      - name: Checkout sources
        uses: actions/checkout@v3

      - name: Install stable toolchain
        run: |
          rustup toolchain install stable --profile minimal --no-self-update
          rustup default stable

      - name: Enable Rust build cache
        uses: Swatinem/rust-cache@v2

      - name: Run cargo test
        run: |
          cargo test

  lints:
    name: Lints
    runs-on: ubuntu-latest
    steps:
      - name: Checkout sources
        uses: actions/checkout@v3

      - name: Install stable toolchain
        run: |
          rustup toolchain install stable --profile minimal --no-self-update
          rustup default stable

      - name: Enable Rust build cache
        uses: Swatinem/rust-cache@v2

      - name: Run cargo fmt
        run: |
          cargo fmt --all -- --check

      - name: Run cargo clippy
        run: |
          cargo clippy -- -D warnings

      - name: Run cargo rdme
        run: |
          cargo install cargo-rdme
          cargo rdme --check

  release:
    name: Release
    if: github.repository == 'Idein/msgpack-schema' && github.event_name == 'push' && github.ref == 'refs/heads/master'
    runs-on: ubuntu-latest
    steps:
      - name: Checkout sources
        uses: actions/checkout@v3

      - name: Run cargo publish
        run: |
          cargo publish --no-verify -p msgpack-schema-impl || :
          cargo publish --no-verify -p msgpack-value || :
          sleep 15
          cargo publish --no-verify -p msgpack-schema || :