Skip to content

Release

Release #778

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, <zenoh@zettascale.tech>
#
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
branch:
type: string
description: Release branch
required: false
jobs:
tag:
name: Branch, Bump & tag
runs-on: ubuntu-latest
outputs:
version: ${{ steps.create-release-branch.outputs.version }}
branch: ${{ steps.create-release-branch.outputs.branch }}
steps:
- id: create-release-branch
uses: eclipse-zenoh/ci/create-release-branch@main
with:
repo: ${{ github.repository }}
live-run: ${{ inputs.live-run || false }}
# NOTE(fuzzypixelz): When the version is undefined (e.g. on schedule
# events) we cannot use git-describe as CMake doesn't support it.
# However, we still need some placeholder version to test that the
# version can be reliably bumped.
version: ${{ inputs.version || '0.0.0' }}
branch: ${{ inputs.branch }}
github-token: ${{ secrets.BOT_TOKEN_WORKFLOW }}
- name: Checkout this repository
uses: actions/checkout@v4
with:
ref: ${{ steps.create-release-branch.outputs.branch }}
- name: Bump and tag project
run: bash ci/scripts/bump-and-tag.bash
env:
VERSION: ${{ steps.create-release-branch.outputs.version }}
GIT_USER_NAME: eclipse-zenoh-bot
GIT_USER_EMAIL: eclipse-zenoh-bot@users.noreply.github.com
pre-build:
name: Pre-Build
needs: tag
runs-on: ubuntu-latest
outputs:
build-linux-matrix: ${{ steps.pre-build.outputs.build-linux-matrix }}
steps:
- name: Clone this repository
uses: actions/checkout@v4
with:
ref: ${{ needs.tag.outputs.branch }}
- id: pre-build
run: bash ci/scripts/pre-build.bash
build-macos:
name: Build for macOS (x64)
needs: [tag, pre-build]
runs-on: macos-latest
steps:
- name: Clone this repository
uses: actions/checkout@v4
with:
ref: ${{ needs.tag.outputs.branch }}
- id: build-macos
run: bash ci/scripts/build-macos.bash
env:
REPO: ${{ github.repository }}
VERSION: ${{ needs.tag.outputs.version }}
- name: Upload macOS library archive
uses: actions/upload-artifact@v4
with:
name: ${{ steps.build-macos.outputs.archive-lib }}
path: ${{ steps.build-macos.outputs.archive-lib }}
- name: Upload macOS examples archive
uses: actions/upload-artifact@v4
with:
name: ${{ steps.build-macos.outputs.archive-examples }}
path: ${{ steps.build-macos.outputs.archive-examples }}
build-linux:
name: Crossbuild for ${{ matrix.target }}
needs: [tag, pre-build]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.pre-build.outputs.build-linux-matrix) }}
steps:
- name: Clone this repository
uses: actions/checkout@v4
with:
ref: ${{ needs.tag.outputs.branch }}
- id: build-linux
run: bash ci/scripts/build-linux.bash
env:
REPO: ${{ github.repository }}
VERSION: ${{ needs.tag.outputs.version }}
TARGET: ${{ matrix.target }}
- name: Upload Linux library archive for ${{ matrix.target }}
uses: actions/upload-artifact@v4
with:
name: ${{ steps.build-linux.outputs.archive-lib }}
path: ${{ steps.build-linux.outputs.archive-lib }}
- name: Upload Linux examples archive for ${{ matrix.target }}
uses: actions/upload-artifact@v4
with:
name: ${{ steps.build-linux.outputs.archive-examples }}
path: ${{ steps.build-linux.outputs.archive-examples }}
- name: Upload Linux RPM archive for ${{ matrix.target }}
uses: actions/upload-artifact@v4
with:
name: ${{ steps.build-linux.outputs.archive-rpm }}
path: ${{ steps.build-linux.outputs.archive-rpm }}
- name: Upload Linux DEB archive for ${{ matrix.target }}
uses: actions/upload-artifact@v4
with:
name: ${{ steps.build-linux.outputs.archive-deb }}
path: ${{ steps.build-linux.outputs.archive-deb }}
eclipse:
needs: [tag, build-macos, build-linux]
runs-on: ubuntu-latest
steps:
- uses: eclipse-zenoh/ci/publish-crates-eclipse@main
with:
live-run: ${{ inputs.live-run || false }}
version: ${{ needs.tag.outputs.version }}
ssh-host: genie.zenoh@projects-storage.eclipse.org
ssh-host-path: /home/data/httpd/download.eclipse.org/zenoh/zenoh-pico
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
ssh-passphrase: ${{ secrets.SSH_PASSPHRASE }}
archive-patterns: '.*\.zip'
github:
needs: [tag, build-macos, build-linux]
runs-on: ubuntu-latest
steps:
- uses: eclipse-zenoh/ci/publish-crates-github@main
with:
repo: ${{ github.repository }}
live-run: ${{ inputs.live-run || false }}
version: ${{ needs.tag.outputs.version }}
branch: ${{ needs.tag.outputs.branch }}
github-token: ${{ secrets.BOT_TOKEN_WORKFLOW }}
archive-patterns: '.*\.zip'