[Release] - Prepare & Publish Release - Manual #104
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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>" |