Skip to content

Commit

Permalink
ci: Set live-run input on schedule runs (#81)
Browse files Browse the repository at this point in the history
* ci: Set `live-run` input on schedule runs

* fix: Split release workflow into `schedule`-triggered and `workflow_dispatch`-triggered
  • Loading branch information
fuzzypixelz authored Apr 2, 2024
1 parent 88ed611 commit a4347ba
Show file tree
Hide file tree
Showing 2 changed files with 139 additions and 13 deletions.
128 changes: 128 additions & 0 deletions .github/workflows/release-nightly.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
#
# 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 (nightly)

on:
schedule:
- cron: "0 0 * * 1-5"

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: false
bump-deps-pattern: ^$
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_backend_fs\.(dylib|so)$
^zenoh_backend_fs\.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: 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: "zenoh.*"
unpublished-deps-repos: "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: false
version: ${{ needs.tag.outputs.version }}
repo: ${{ github.repository }}
branch: ${{ needs.tag.outputs.branch }}
installation-test: false
secrets: inherit

homebrew:
needs: [tag, build-standalone]
name: Publish Homebrew formulae
uses: eclipse-zenoh/ci/.github/workflows/release-crates-homebrew.yml@main
with:
no-build: true
repo: ${{ github.repository }}
live-run: false
version: ${{ needs.tag.outputs.version }}
branch: ${{ needs.tag.outputs.branch }}
artifact-patterns: |
^libzenoh_backend_fs\.dylib$
formulae: |
zenoh-backend-filesystem
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: false
version: ${{ needs.tag.outputs.version }}
repo: ${{ github.repository }}
branch: ${{ needs.tag.outputs.branch }}
artifact-patterns: |
^libzenoh_backend_fs\.(dylib|so)$
^zenoh_backend_fs\.dll$
name: zenoh-backend-filesystem
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: false
version: ${{ needs.tag.outputs.version }}
repo: ${{ github.repository }}
branch: ${{ needs.tag.outputs.branch }}
artifact-patterns: |
^libzenoh_backend_fs\.(dylib|so)$
^zenoh_backend_fs\.dll$
secrets: inherit
24 changes: 11 additions & 13 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,22 +14,20 @@
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)
description: Whether to run with side-effects
required: false
default: false
version:
type: string
description: Release number. If undefined, the workflow auto-generates a version using git-describe
required: false
description: Release number
required: true
zenoh-version:
type: string
description: Release number of Zenoh. Required in live-run mode and ignored in dry-run mode
description: Zenoh Release number
required: false

jobs:
Expand All @@ -40,9 +38,9 @@ jobs:
repo: ${{ github.repository }}
live-run: ${{ inputs.live-run }}
version: ${{ inputs.version }}
bump-deps-pattern: ${{ inputs.live-run && 'zenoh.*' || '^$' }}
bump-deps-version: ${{ inputs.live-run && inputs.zenoh-version || '' }}
bump-deps-branch: ${{ inputs.live-run && format('release/{0}', inputs.zenoh-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-debian:
Expand All @@ -69,8 +67,8 @@ jobs:
secrets: inherit

cargo:
name: Publish Cargo crates
needs: tag
name: Publish Cargo crates
uses: eclipse-zenoh/ci/.github/workflows/release-crates-cargo.yml@main
with:
repo: ${{ github.repository }}
Expand All @@ -81,8 +79,8 @@ jobs:
# 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 && '' || 'zenoh.*' }}
unpublished-deps-repos: ${{ inputs.live-run && '' || 'eclipse-zenoh/zenoh' }}
unpublished-deps-patterns: ${{ !inputs.live-run && 'zenoh.*' || '' }}
unpublished-deps-repos: ${{ !inputs.live-run && 'eclipse-zenoh/zenoh' || '' }}
secrets: inherit

debian:
Expand All @@ -99,8 +97,8 @@ jobs:
secrets: inherit

homebrew:
name: Publish Homebrew formulae
needs: [tag, build-standalone]
name: Publish Homebrew formulae
uses: eclipse-zenoh/ci/.github/workflows/release-crates-homebrew.yml@main
with:
no-build: true
Expand Down

0 comments on commit a4347ba

Please # to comment.