iks 0.6.0

Fast, easy to use XML parser library for Jabber/XMPP and general XML processing
Documentation
name: CI
permissions:
  contents: read

on:
  pull_request:
  push:
    branches:
      - main
  workflow_call:

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

env:
  RUST_BACKTRACE: 1
  CARGO_TERM_COLOR: always
  CARGO_TERM_VERBOSE: "true"
  CARGO_INCREMENTAL: 0
  CARGO_PROFILE_TEST_DEBUG: 0

jobs:
  ci-all:
    name: All CI Stages
    runs-on: ubuntu-latest
    needs:
      - lint
      - test
      - semver-checks
    if: ${{ success() || failure()}}
    steps:
      - name: Job outcomes
        run: |
          echo "Lint job status: ${{ needs.lint.result }}"
          echo "Test job status: ${{ needs.test.result }}"
          echo "Semver job status: ${{ needs.semver-checks.result }}"
      - if: ${{ needs.lint.result != 'success' }}
        run: exit 1
      - if: ${{ needs.test.result != 'success' }}
        run: exit 1
      - if: ${{ needs.semver-checks.result != 'success' }}
        run: exit 1

  lint:
    name: Lint
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
      - name: Rustfmt
        run: cargo fmt --all --check
      - name: Clippy
        run: cargo clippy
      - name: Rustdoc
        run: cargo doc --no-deps

  test:
    name: Test
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
      - name: Cargo Test
        run: cargo test

  semver-checks:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
      - name: Check semver
        uses: obi1kenobi/cargo-semver-checks-action@v2