Skip to content

fix: update meowdown to ^0.58.1 (#935) #164

fix: update meowdown to ^0.58.1 (#935)

fix: update meowdown to ^0.58.1 (#935) #164

name: Release PR
# Stable and beta Release PRs share master but use separate lifecycle labels
# and head branches. A merged PR in one channel therefore cannot block the
# other channel from refreshing its open PR. Beta versions use a prerelease
# suffix (for example, X.Y.Z-beta or X.Y.Z-beta.N); release.yml derives the
# prerelease/latest flags from that suffix.
#
# Everything runs on GITHUB_TOKEN. Tags created with that token do not trigger
# tag-push workflows, so publishing is called directly through job outputs.
on:
push:
branches: [master]
permissions:
contents: write
pull-requests: write
concurrency:
group: release-please
cancel-in-progress: false
jobs:
release-please:
name: Maintain the Release PRs
runs-on: ubuntu-latest
# The package lives at the repo root ("."), so each pass emits its outputs
# without a path prefix. The channels never release from the same push:
# a push merges at most one Release PR, and the two passes only create
# releases for merged PRs on their own head branch (the component in the
# branch name tells them apart).
outputs:
stable_created: ${{ steps.stable.outputs.releases_created }}
stable_tag: ${{ steps.stable.outputs.tag_name }}
stable_commit: ${{ steps.stable.outputs.sha }}
beta_created: ${{ steps.beta.outputs.releases_created }}
beta_tag: ${{ steps.beta.outputs.tag_name }}
beta_commit: ${{ steps.beta.outputs.sha }}
steps:
# Stable runs first because a stable promotion advances
# manifest.beta.json. Creating the stable tag before the beta pass gives
# beta a valid anchor for the next prerelease cycle. Separate lifecycle
# labels also let this pass refresh the stable PR immediately after a
# beta PR is merged, before beta creates its tag below.
- uses: googleapis/release-please-action@45996ed1f6d02564a971a2fa1b5860e934307cf7 # v5.0.0
id: stable
with:
target-branch: master
config-file: .github/release-please/config.stable.json
manifest-file: .github/release-please/manifest.stable.json
# After a stable promotion, beta reads the new stable tag and manifest
# before the superseded beta PR is closed below. After a beta release,
# this pass creates the beta tag and clears beta's pending label.
- uses: googleapis/release-please-action@45996ed1f6d02564a971a2fa1b5860e934307cf7 # v5.0.0
id: beta
with:
target-branch: master
config-file: .github/release-please/config.beta.json
manifest-file: .github/release-please/manifest.beta.json
# Merging a Release PR makes its channel's pass above create a draft release
# and output its tag. Chain straight into the build/sign/publish pipeline
# with the tag resolved to its immutable commit once; the called workflows
# check out that SHA rather than resolving the tag name again.
publish-release-stable:
name: Build and publish the stable release
needs: release-please
if: needs.release-please.outputs.stable_created == 'true'
uses: ./.github/workflows/release.yml
with:
tag: ${{ needs.release-please.outputs.stable_tag }}
commit: ${{ needs.release-please.outputs.stable_commit }}
secrets: inherit
publish-release-beta:
name: Build and publish the beta release
needs: release-please
if: needs.release-please.outputs.beta_created == 'true'
uses: ./.github/workflows/release.yml
with:
tag: ${{ needs.release-please.outputs.beta_tag }}
commit: ${{ needs.release-please.outputs.beta_commit }}
secrets: inherit
# Every release also ships to TestFlight. iOS needs no version bump of its
# own: the marketing version follows apps/desktop/package.json with the
# prerelease suffix stripped, so beta and stable builds stack under the same
# version, told apart by the UTC-timestamp build number.
publish-testflight-stable:
name: Upload the stable release to TestFlight
needs: release-please
if: needs.release-please.outputs.stable_created == 'true'
uses: ./.github/workflows/testflight.yml
with:
commit: ${{ needs.release-please.outputs.stable_commit }}
secrets: inherit
publish-testflight-beta:
name: Upload the beta release to TestFlight
needs: release-please
if: needs.release-please.outputs.beta_created == 'true'
uses: ./.github/workflows/testflight.yml
with:
commit: ${{ needs.release-please.outputs.beta_commit }}
secrets: inherit