Skip to content

[Release] - Prepare & Publish Release - Manual #104

[Release] - Prepare & Publish Release - Manual

[Release] - Prepare & Publish Release - Manual #104

name: "[Release] - Prepare & Publish Release - Manual"
on:
workflow_dispatch:
inputs:
ref:
description: the branch to release from
default: release
required: true
jobs:
prepare-release:
name: Prepare Release
runs-on: ubuntu-24.04
env:
NODE_OPTIONS: "--max-old-space-size=7168"
steps:
- name: generate token
id: generate-token
uses: tibdex/github-app-token@v1
with:
app_id: ${{ secrets.GH_BOT_APP_ID }}
private_key: ${{ secrets.GH_BOT_PRIVATE_KEY }}
- name: Checkout Repo
uses: actions/checkout@v4
with:
ref: ${{ inputs.ref }}
token: ${{ steps.generate-token.outputs.token }}
- name: Setup git user
uses: LedgerHQ/ledger-live/tools/actions/composites/setup-git-user@develop
- name: Setup the caches
uses: LedgerHQ/ledger-live/tools/actions/composites/setup-caches@develop
id: setup-caches
with:
install-proto: true
- name: install dependencies
run: pnpm i -F "ledger-live"
- name: exit prerelease mode
run: pnpm changeset pre exit
- name: versioning
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: pnpm changeset version
- name: git add
run: |
git add .
- name: commit
uses: planetscale/[email protected]
with:
commit_message: "chore(release): :rocket: prepare release [skip ci]"
repo: ${{ github.repository }}
branch: ${{ inputs.ref }}
env:
GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }}
- name: pull commit
run: |
git stash
git pull origin ${{ inputs.ref }}
- name: fetch develop and main
run: |
git fetch origin develop main
- name: merge into main
run: |
git checkout main
git merge ${{ inputs.ref }} --no-ff
git push origin main
- name: create PR to develop
env:
GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }}
run: |
git checkout ${{ github.event.inputs.ref }}
git checkout -b support/release-merge-conflicts
git push origin support/release-merge-conflicts
gh pr create --title ":rotating_light: Release merge conflicts" -F .github/templates/release-conflicts.md --base develop --head support/release-merge-conflicts
release-final:
name: "Prepare Release > Publish packages and apps"
needs: prepare-release
uses: LedgerHQ/ledger-live/.github/workflows/release-final.yml@develop
with:
ref: main
caller: release-prepare
secrets: inherit
release-fail:
name: "Prepare Release > Failure Reporting"
needs: release-final
if: failure()
runs-on: ubuntu-latest
steps:
- name: post to a Slack channel
id: slack
uses: slackapi/[email protected]
with:
token: ${{ secrets.SLACK_BOT_USER_OAUTH_ACCESS_TOKEN }}
method: chat.postMessage
payload: |
channel: "C08JQKWS9KK"
text: "[Alert] Release Preparation failed"
blocks:
- type: "section"
text:
type: "mrkdwn"
text: "*Release Preparation failed*"
- type: "section"
text:
type: "mrkdwn"
text: "<${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|Workflow run>"