Skip to content

Release

Release #24

Workflow file for this run

name: Release
on:
schedule:
- cron: "0 1 * * 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
jobs:
tag:
name: Bump and tag crates
uses: fuzzypixelz/ci/.github/workflows/branch-bump-tag-crates.yml@main

Check failure on line 24 in .github/workflows/release.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/release.yml

Invalid workflow file

error parsing called workflow ".github/workflows/release.yml" -> "fuzzypixelz/ci/.github/workflows/branch-bump-tag-crates.yml@main" : workflow was not found. See https://docs.github.com/actions/learn-github-actions/reusing-workflows#access-to-reusable-workflows for more information.
with:
repo: ${{ github.repository }}
live-run: ${{ inputs.live-run || false }}
version: ${{ inputs.version }}
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-macos:
needs: tag
runs-on: macos-latest
steps:
- name: Checkout this repository
uses: actions/checkout@v4
- name: Install Rust toolchain
run: |
rustup set profile minimal
rustup show
- name: Build wheels - x86_64
uses: messense/maturin-action@v1
with:
target: x86_64
args: --release --out dist --sdist # Note: this step builds also the sources distrib
- name: Build wheels - universal2
uses: messense/maturin-action@v1
with:
args: --release --universal2 --out dist
- name: Upload wheels
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist
build-windows:
needs: tag
runs-on: windows-latest
strategy:
matrix:
target: [x64]
# target: [x64, x86] NOTE: x86 deactivated because of strange error: failed to run custom build command for `pyo3-ffi v0.17.1`
steps:
- name: Checkout this repository
uses: actions/checkout@v4
- name: Install Rust toolchain
run: |
rustup set profile minimal
rustup show
- name: Build wheels
uses: messense/maturin-action@v1
with:
target: ${{ matrix.target }}
args: --release --out dist
- name: Upload wheels
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist
build-linux:
needs: tag
runs-on: ubuntu-latest
strategy:
matrix:
target: [x86_64, i686, armv7]
steps:
- name: Checkout this repository
uses: actions/checkout@v4
- name: Build wheels
uses: messense/maturin-action@v1
with:
target: ${{ matrix.target }}
manylinux: auto
args: --release --out dist
- name: Upload wheels
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist
build-linux-aarch64:
needs: tag
runs-on: ubuntu-latest
steps:
- name: Checkout this repository
uses: actions/checkout@v4
- name: Build wheels
uses: messense/maturin-action@v1
with:
target: aarch64
# NOTE(fuzzypixelz): We manually specify a more recent manylinux platform tag for aarch64:
# - zenoh-link-quic indirectly depends on ring 0.17 through rustls-webpki.
# - ring 0.17 depends on a version of BoringSSL that requires GCC/Clang to provide __ARM_ARCH
# - When setting the manylinux tag to 'auto', messense/maturin-action@v1 uses manylinux2014 to compile for for aarch64
# - the GCC included in the manylinux2014 docker image doesn't provide __ARM_ARCH
# See: https://github.com/briansmith/ring/issues/1728
manylinux: manylinux_2_28
args: --release --out dist
- name: Upload wheels
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist
build-linux-armv6:
needs: tag
runs-on: macos-latest
steps:
- name: Checkout this repository
uses: actions/checkout@v4
- name: Install Rust toolchain
run: |
rustup set profile minimal
rustup target add arm-unknown-linux-gnueabihf
- name: Install cross toolchain
run: |
brew tap messense/macos-cross-toolchains
brew install arm-unknown-linux-gnueabihf
export CC_arm_unknown_linux_gnueabihf=arm-unknown-linux-gnueabihf-gcc
export CXX_arm_unknown_linux_gnueabihf=arm-unknown-linux-gnueabihf-g++
export AR_arm_unknown_linux_gnueabihf=arm-unknown-linux-gnueabihf-ar
export CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-unknown-linux-gnueabihf-gcc
pip3 install maturin
maturin build --release --target arm-unknown-linux-gnueabihf --out dist
- name: Upload wheels
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist
publish-pypi:
needs:
[
tag,
build-macos,
build-windows,
build-linux,
build-linux-armv6,
build-linux-aarch64,
]
name: Deploy wheels to pypi
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v3
with:
name: wheels
path: dist
- name: Check dist
run: ls -al ./dist/*
- name: Publish
if: ${{ inputs.live-run || false }}
uses: pypa/gh-action-pypi-publish@v1.6.4
with:
password: ${{ secrets.PYPI_ORG_TOKEN }}
publish-github:
needs:
[
tag,
build-macos,
build-windows,
build-linux,
build-linux-armv6,
build-linux-aarch64,
]
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: "^$"