Skip to content

Release

Release #225

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: If false (or undefined) the workflow runs in dry-run mode (i.e. with no side-effects)
required: false
version:
type: string
description: Release number. If undefined, the workflow auto-generates a version using git-describe
required: false
zenoh-version:
type: string
description: Release number of Zenoh. Required in live-run mode and ignored in dry-run mode
required: false
jobs:
tag:
name: Bump and tag crates
uses: eclipse-zenoh/ci/.github/workflows/tag-crates.yml@main
with:
repo: ${{ github.repository }}
live-run: ${{ inputs.live-run || false }}
version: ${{ inputs.version }}
inter-deps-pattern: ${{ inputs.live-run && 'zenoh.*' || '^$' }}
inter-deps-version: ${{ inputs.live-run && 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 }}
# NOTE: It is possible to build in Windows, but we don't target it for now
exclude-builds: '[{ build: { os: "windows-2019" } }]'
artifact-patterns: |
^zenoh-bridge-ros1(\.exe)?$
^libzenoh_plugin_ros1\.(dylib|so)$
^zenoh_plugin_ros1\.dll$
secrets: inherit
cargo-live-run:
if: ${{ inputs.live-run || false }}
name: Publish Cargo crates (live-run)
needs: tag
uses: eclipse-zenoh/ci/.github/workflows/release-crates-cargo.yml@main
with:
repos: ${{ github.repository }}
live-run: true
branch: ${{ needs.tag.outputs.branch }}
inter-deps-pattern: ^$
secrets: inherit
# 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
cargo-dry-run:
if: ${{ !inputs.live-run || true }}
name: Publish Cargo crates (dry-run)
needs: tag
uses: eclipse-zenoh/ci/.github/workflows/release-crates-cargo.yml@main
with:
repos: |
eclipse-zenoh/zenoh
${{ github.repository }}
live-run: false
branch: ${{ needs.tag.outputs.branch }}
inter-deps-pattern: 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 }}
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-ros1$
^libzenoh_plugin_ros1\.dylib$
formulae: |
zenoh-bridge-ros1
zenoh-plugin-ros1
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-ros1(\.exe)?$
^libzenoh_plugin_ros1\.(dylib|so)$
^zenoh_plugin_ros1\.dll$
name: zenoh-plugin-ros1
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-ros1(\.exe)?$
^libzenoh_plugin_ros1\.(dylib|so)$
^zenoh_plugin_ros1\.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 }}
repo: ${{ github.repository }}
tags: "eclipse/zenoh-plugin-ros1:${{ needs.tag.outputs.version }}"
binary: zenoh-bridge-ros1
files: |
zenoh-bridge-ros1
libzenoh_plugin_ros1.so
platforms: |
linux/arm64
linux/amd64
secrets: inherit
ghcr:
name: Publish container image to GitHub Container Registry
needs: [tag, build-standalone]
uses: eclipse-zenoh/ci/.github/workflows/release-crates-ghcr.yml@main
with:
no-build: true
live-run: ${{ inputs.live-run || false }}
version: ${{ needs.tag.outputs.version }}
repo: ${{ github.repository }}
tags: "${{ github.repository }}:${{ needs.tag.outputs.version }}"
binary: zenoh-bridge-ros1
files: |
zenoh-bridge-ros1
libzenoh_plugin_ros1.so
platforms: |
linux/arm64
linux/amd64
secrets: inherit