cssparser 0.37.0

Rust implementation of CSS Syntax Level 3
Documentation
name: CI

on:
  push:
    branches: [main]
  pull_request:
  workflow_dispatch:
  merge_group:
    types: [checks_requested]

jobs:
  linux-ci:
    name: Linux
    runs-on: ubuntu-latest
    strategy:
      matrix:
        toolchain:
          - nightly
          - beta
          - stable
          - 1.71.0
        features:
          -
          - --no-default-features
          - --features malloc_size_of
        include:
          - toolchain: nightly
            features: --features bench
    steps:
      - uses: actions/checkout@v2

      - name: Install toolchain
        uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: ${{ matrix.toolchain }}
          override: true
          components: rustfmt, clippy, ${{ matrix.toolchain == 'nightly' && 'miri,rust-src' || '' }}

      - name: Cargo format & lint
        run: cargo fmt --check && cargo clippy -- -Dwarnings

      - name: Cargo build
        run: cargo build -p cssparser ${{ matrix.features }}

      - name: Cargo doc
        run: cargo doc -p cssparser ${{ matrix.features }}

      - name: Cargo test
        run: cargo test -p cssparser ${{ matrix.features }}

      - name: macros build
        run: cargo build -p cssparser-macros

      - name: Color build
        run: cargo build -p cssparser-color

      - name: Color test
        run: cargo test -p cssparser-color

      - name: Cargo miri test
        if: "matrix.toolchain == 'nightly'"
        run: cargo miri test -p cssparser --features skip_long_tests ${{ matrix.features }}

  build_result:
    name: Result
    runs-on: ubuntu-latest
    needs:
      - "linux-ci"

    steps:
      - name: Mark the job as successful
        run: exit 0
        if: success()
      - name: Mark the job as unsuccessful
        run: exit 1
        if: "!success()"