Skip to content

Release

Release #1223

Workflow file for this run

#
# 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, <[email protected]>
#
name: Release
on:
schedule:
- cron: "0 0 * * 1-5"
workflow_dispatch:
inputs:
live-run:
type: boolean
description: Live-run
required: false
version:
type: string
description: Release number
required: false
zenoh-version:
type: string
description: Release number of Zenoh
required: false
branch:
type: string
description: Release branch
required: false
jobs:
version:
name: Compute version
runs-on: ubuntu-latest
outputs:
version: ${{ steps.version.outputs.version }}
bump-deps-version: ${{ steps.version.outputs.bump-deps-version }}
bump-deps-pattern: ${{ steps.version.outputs.bump-deps-pattern }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Fetch all history for all tags and branches
- id: version
name: Compute version
run: |
if [ -n "${{ inputs.version }}" ] && [ -n "${{ inputs.zenoh-version }}" ]; then
printf "version=%s\n" "${{ inputs.version }}" >> $GITHUB_OUTPUT
{
echo 'bump-deps-version<<EOF'
printf "%s\n%s\n" "${{inputs.version }}" "${{ inputs.zenoh-version }}"
echo EOF
} >> $GITHUB_OUTPUT
{
echo 'bump-deps-pattern<<EOF'
printf "^zenoh-plugin-dds$\n^zenoh(?!-plugin-dds)[a-zA-Z0-9-_]*$\n"
echo EOF
} >> $GITHUB_OUTPUT
else
# Extract the version from the latest tag
version=$(git describe --tags)
printf "version=%s\n" "$version" >> $GITHUB_OUTPUT
printf "bump-deps-version=%s\n" "$version" >> $GITHUB_OUTPUT
printf "bump-deps-pattern=^zenoh-plugin-dds$\n" >> $GITHUB_OUTPUT
fi
tag:
name: Branch, Bump & tag crates
needs: version
uses: eclipse-zenoh/ci/.github/workflows/branch-bump-tag-crates.yml@main
with:
repo: ${{ github.repository }}
live-run: ${{ inputs.live-run || false }}
version: ${{ needs.version.outputs.version }}
branch: ${{ inputs.branch }}
bump-deps-version: |
${{ needs.version.outputs.bump-deps-version }}
bump-deps-pattern: |
${{ needs.version.outputs.bump-deps-pattern }}
bump-deps-branch: ${{ needs.version.outputs.version && format('release/{0}', needs.version.outputs.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 }}
# NOTE: x86_64-pc-windows-gnu is not supported by cyclors
exclude-builds: '[{ build: { target: "x86_64-pc-windows-gnu", os: "windows-2022" } }]'
artifact-patterns: |
^zenoh-bridge-dds(\.exe)?$
^libzenoh_plugin_dds\.(dylib|so)$
^zenoh_plugin_dds\.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-plugin-dds$' || '' }}
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: |
^zenoh-bridge-dds$
^libzenoh_plugin_dds\.dylib$
formulae: |
zenoh-bridge-dds
zenoh-plugin-dds
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: |
^zenoh-bridge-dds(\.exe)?$
^libzenoh_plugin_dds\.(dylib|so)$
^zenoh_plugin_dds\.dll$
name: zenoh-plugin-dds
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: |
^zenoh-bridge-dds(\.exe)?$
^libzenoh_plugin_dds\.(dylib|so)$
^zenoh_plugin_dds\.dll$
secrets: inherit
dockerhub:
name: Publish container image to DockerHub
needs: [tag, build-standalone]
uses: eclipse-zenoh/ci/.github/workflows/release-crates-dockerhub.yml@main
with:
no-build: true
live-run: ${{ inputs.live-run || false }}
version: ${{ needs.tag.outputs.version }}
branch: ${{ needs.tag.outputs.branch }}
repo: ${{ github.repository }}
image: "eclipse/zenoh-bridge-dds"
binary: zenoh-bridge-dds
files: |
zenoh-bridge-dds
libzenoh_plugin_dds.so
platforms: |
linux/arm64
linux/amd64
licenses: EPL-2.0 OR Apache-2.0
secrets: inherit