diff --git a/.github/workflows/release-nightly.yml b/.github/workflows/release-nightly.yml new file mode 100644 index 0000000..bce5b09 --- /dev/null +++ b/.github/workflows/release-nightly.yml @@ -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, +# +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 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 433deda..e23b24a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -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: @@ -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: @@ -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 }} @@ -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: @@ -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