zenoh-plugin-webserver 1.3.4

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: Release

on:
  schedule:
    - cron: "0 0 * * 1-5"
  workflow_dispatch:
    inputs:
      live-run:
        type: boolean
        description: Live-run
        required: false
        default: false
      version:
        type: string
        description: Release number
        required: false
      zenoh-version:
        type: string
        description: Zenoh Release number
        required: false
      branch:
        type: string
        description: Release branch
        required: false

jobs:
  tag:
    name: Branch, Bump & tag crates
    uses: eclipse-zenoh/ci/.github/workflows/branch-bump-tag-crates.yml@main
    with:
      repo: ${{ github.repository }}
      live-run: ${{ inputs.live-run || false }}
      version: ${{ inputs.version }}
      branch: ${{ inputs.branch }}
      bump-deps-version: ${{ inputs.zenoh-version }}
      bump-deps-pattern: ${{ inputs.zenoh-version && 'zenoh.*' || '^$' }}
      bump-deps-branch: ${{ inputs.zenoh-version && format('release/{0}', inputs.zenoh-version) || '' }}
    secrets: inherit

  build-debian:
    name: Build Debian packages
    needs: tag
    uses: eclipse-zenoh/ci/.github/workflows/build-crates-debian.yml@main
    with:
      repo: ${{ github.repository }}
      version: ${{ needs.tag.outputs.version }}
      branch: ${{ needs.tag.outputs.branch }}
    secrets: inherit

  build-standalone:
    name: Build executables and libraries
    needs: tag
    uses: eclipse-zenoh/ci/.github/workflows/build-crates-standalone.yml@main
    with:
      repo: ${{ github.repository }}
      version: ${{ needs.tag.outputs.version }}
      branch: ${{ needs.tag.outputs.branch }}
      artifact-patterns: |
        ^libzenoh_plugin_webserver\.(dylib|so)$
        ^zenoh_plugin_webserver\.dll$
    secrets: inherit

  cargo:
    needs: tag
    name: Publish Cargo crates
    uses: eclipse-zenoh/ci/.github/workflows/release-crates-cargo.yml@main
    with:
      repo: ${{ github.repository }}
      live-run: ${{ inputs.live-run || false }}
      branch: ${{ needs.tag.outputs.branch }}
      # - In dry-run mode, we need to publish eclipse-zenoh/zenoh before this
      #   repository, in which case the version of zenoh dependecies are left as
      #   is and thus point to the main branch of eclipse-zenoh/zenoh.
      # - In live-run mode, we assume that eclipse-zenoh/zenoh is already
      #   published as this workflow can't be responsible for publishing it
      unpublished-deps-patterns: ${{ !(inputs.live-run || false) && 'zenoh.*' || '' }}
      unpublished-deps-repos: ${{ !(inputs.live-run || false) && 'eclipse-zenoh/zenoh' || '' }}
    secrets: inherit

  debian:
    name: Publish Debian packages
    needs: [tag, build-debian]
    uses: eclipse-zenoh/ci/.github/workflows/release-crates-debian.yml@main
    with:
      no-build: true
      live-run: ${{ inputs.live-run || false }}
      version: ${{ needs.tag.outputs.version }}
      repo: ${{ github.repository }}
      branch: ${{ needs.tag.outputs.branch }}
      installation-test: false
    secrets: inherit

  homebrew:
    name: Publish Homebrew formulae
    needs: [tag, build-standalone]
    uses: eclipse-zenoh/ci/.github/workflows/release-crates-homebrew.yml@main
    with:
      no-build: true
      repo: ${{ github.repository }}
      live-run: ${{ inputs.live-run || false }}
      version: ${{ needs.tag.outputs.version }}
      branch: ${{ needs.tag.outputs.branch }}
      artifact-patterns: |
        ^libzenoh_plugin_webserver\.dylib$
      formulae: |
        zenoh-plugin-webserver
    secrets: inherit

  eclipse:
    name: Publish artifacts to Eclipse downloads
    needs: [tag, build-standalone]
    uses: eclipse-zenoh/ci/.github/workflows/release-crates-eclipse.yml@main
    with:
      no-build: true
      live-run: ${{ inputs.live-run || false }}
      version: ${{ needs.tag.outputs.version }}
      repo: ${{ github.repository }}
      branch: ${{ needs.tag.outputs.branch }}
      artifact-patterns: |
        ^libzenoh_plugin_webserver\.(dylib|so)$
        ^zenoh_plugin_webserver\.dll$
      name: zenoh-plugin-webserver
    secrets: inherit

  github:
    name: Publish artifacts to GitHub Releases
    needs: [tag, build-standalone]
    uses: eclipse-zenoh/ci/.github/workflows/release-crates-github.yml@main
    with:
      no-build: true
      live-run: ${{ inputs.live-run || false }}
      version: ${{ needs.tag.outputs.version }}
      repo: ${{ github.repository }}
      branch: ${{ needs.tag.outputs.branch }}
      artifact-patterns: |
        ^libzenoh_plugin_webserver\.(dylib|so)$
        ^zenoh_plugin_webserver\.dll$
    secrets: inherit