zenoh-plugin-webserver 1.7.2

Plugin for Zenoh implementing an HTTP server that maps URLs to zenoh key expressions
Documentation
#
# Copyright (c) 2022 ZettaScale Technology
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
# which is available at https://www.apache.org/licenses/LICENSE-2.0.
#
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
#
# Contributors:
#   ZettaScale Zenoh Team, <zenoh@zettascale.tech>
#
name: CI

on:
  push:
    branches:
      - "**"
  pull_request:
    branches:
      - "**"
  schedule:
    - cron: "0 6 * * 1-5"

jobs:
  build:
    name: Build on ${{ matrix.os }}
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest, macOS-latest, windows-latest]

    steps:
      - uses: actions/checkout@v4

      - name: Install Rust toolchain
        run: |
          rustup show
          rustup component add rustfmt clippy

      - name: Code format check
        run: cargo fmt --check -- --config "unstable_features=true,imports_granularity=Crate,group_imports=StdExternalCrate"
      - name: Clippy
        run: cargo clippy --all --examples -- -D warnings

      - name: Build
        run: cargo build --verbose --all-targets

      - name: Run tests
        run: cargo test --verbose

  markdown_lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: DavidAnson/markdownlint-cli2-action@v18
        with:
          config: '.markdownlint.yaml'
          globs: '**/README.md'

  check_rust:
      name: Check ${{ github.repository }} using Rust 1.75
      runs-on: ubuntu-latest
      strategy:
        fail-fast: false
      steps:
        - name: Clone this repository
          uses: actions/checkout@v4

        - name: Update Rust 1.75.0 toolchain
          run: rustup update 1.75.0

        - name: Setup rust-cache
          uses: Swatinem/rust-cache@v2
          with:
            cache-bin: false

        - name: Check ${{ github.repository }} with rust 1.75.0
          run: |
            cargo +1.75.0 check --release --bins --lib

  # NOTE: In GitHub repository settings, the "Require status checks to pass
  # before merging" branch protection rule ensures that commits are only merged
  # from branches where specific status checks have passed. These checks are
  # specified manually as a list of workflow job names. Thus we use this extra
  # job to signal whether all CI checks have passed.
  ci:
    name: CI status checks
    runs-on: ubuntu-latest
    needs: [check_rust, build, markdown_lint]
    if: always()
    steps:
      - name: Check whether all jobs pass
        run: echo '${{ toJson(needs) }}' | jq -e 'all(.result == "success")'