Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support/fix release ref handling call from first workflow test #8719

Draft
wants to merge 2 commits into
base: develop
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
256 changes: 130 additions & 126 deletions .github/workflows/release-final.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
name: "[Release] Publish packages and apps"
on:
workflow_call:
inputs:
ref:
type: string
description: "the ref (branch) to release from"
required: false
default: main
workflow_dispatch:
inputs:
app:
Expand All @@ -17,20 +24,17 @@ on:
required: false
default: main

workflow_run:
workflows:
- \[Release\] Prepare for releasing
- \[Release\](Hotfix) Prepare for releasing
types:
- "completed"

jobs:
release:
name: Release
runs-on: ubuntu-24.04
env:
NODE_OPTIONS: "--max-old-space-size=7168"
steps:
- name: echo ref
run: |
echo "inputs.ref value: ${{ inputs.ref }}"
shell: bash
- name: generate token
id: generate-token
uses: tibdex/github-app-token@v1
Expand All @@ -42,122 +46,122 @@ jobs:
ref: ${{ inputs.ref }}
fetch-depth: 2
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
- uses: ruby/setup-ruby@v1
with:
ruby-version: 3.3.0
- name: Cache LLM pods
uses: actions/cache@v3
with:
path: |
apps/ledger-live-mobile/ios/Pods
~/Library/Caches/CocoaPods
~/.cocoapods
key: ${{ runner.os }}-pods-${{ hashFiles('apps/ledger-live-mobile/ios/Podfile.lock') }}
- name: install dependencies
run: pnpm i -F "ledger-live" -F "{libs/**}..." -F "@ledgerhq/live-cli"
- name: build libs
run: pnpm run build:libs
- name: authenticate with npm
uses: actions/setup-node@v4
with:
registry-url: "https://registry.npmjs.org"
- name: publish release
run: pnpm changeset publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPMJS_TOKEN }}
- name: check if desktop versions are different
if: ${{ github.event_name == 'workflow_run' }}
id: desktop-changed
run: |
echo "status=$(git diff HEAD HEAD~1 ./apps/ledger-live-desktop/package.json | grep '"version": "' | wc -l)" >> $GITHUB_OUTPUT
- name: check if mobile versions are different
if: ${{ github.event_name == 'workflow_run' }}
id: mobile-changed
run: |
echo "status=$(git diff HEAD HEAD~1 ./apps/ledger-live-mobile/package.json | grep '"version": "' | wc -l)" >> $GITHUB_OUTPUT
- uses: LedgerHQ/ledger-live/tools/actions/get-package-infos@develop
id: desktop-version
with:
path: ${{ github.workspace }}/apps/ledger-live-desktop
- uses: LedgerHQ/ledger-live/tools/actions/get-package-infos@develop
id: mobile-version
with:
path: ${{ github.workspace }}/apps/ledger-live-mobile
- name: generate desktop changelog
if: ${{ steps.desktop-changed.outputs.status != 0 || github.event_name == 'workflow_dispatch' && contains(fromJson('["LLD", "ALL"]'), inputs.app) }}
uses: LedgerHQ/ledger-live/tools/actions/generate-release-message@develop
id: desktop-changelog
with:
package-path: ${{ github.workspace }}/apps/ledger-live-desktop/package.json
changelog-path: ${{ github.workspace }}/apps/ledger-live-desktop/CHANGELOG.md
output-path: ${{ github.workspace }}
name: desktop-changelog
- name: tag desktop
if: ${{ steps.desktop-changed.outputs.status != 0 || github.event_name == 'workflow_dispatch' && contains(fromJson('["LLD", "ALL"]'), inputs.app) }}
run: |
git tag @ledgerhq/live-desktop@${{ steps.desktop-version.outputs.version }}
- name: generate mobile changelog
if: ${{ steps.mobile-changed.outputs.status != 0 || github.event_name == 'workflow_dispatch' && contains(fromJson('["LLM", "ALL"]'), inputs.app) }}
uses: LedgerHQ/ledger-live/tools/actions/generate-release-message@develop
id: mobile-changelog
with:
package-path: ${{ github.workspace }}/apps/ledger-live-mobile/package.json
changelog-path: ${{ github.workspace }}/apps/ledger-live-mobile/CHANGELOG.md
output-path: ${{ github.workspace }}
name: mobile-changelog
- name: tag mobile
if: ${{ steps.mobile-changed.outputs.status != 0 || github.event_name == 'workflow_dispatch' && contains(fromJson('["LLM", "ALL"]'), inputs.app) }}
run: |
git tag live-mobile@${{ steps.mobile-version.outputs.version }}
- name: push changes
run: |
git push origin ${{ inputs.ref }} --tags
- name: create desktop github release
if: ${{ steps.desktop-changed.outputs.status != 0 || github.event_name == 'workflow_dispatch' && contains(fromJson('["LLD", "ALL"]'), inputs.app) }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release create @ledgerhq/live-desktop@${{ steps.desktop-version.outputs.version }} -F ${{ steps.desktop-changelog.outputs.path }}
- name: create mobile github release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
if: ${{ steps.mobile-changed.outputs.status != 0 || github.event_name == 'workflow_dispatch' && contains(fromJson('["LLM", "ALL"]'), inputs.app) }}
run: |
gh release create live-mobile@${{ steps.mobile-version.outputs.version }} -F ${{ steps.mobile-changelog.outputs.path }}
- uses: actions/github-script@v7
name: trigger release build for desktop
if: ${{ steps.desktop-changed.outputs.status != 0 || github.event_name == 'workflow_dispatch' && contains(fromJson('["LLD", "ALL"]'), inputs.app) }}
with:
github-token: ${{ steps.generate-token.outputs.token }}
script: |
github.rest.actions.createWorkflowDispatch({
owner: "ledgerhq",
repo: "ledger-live-build",
ref: "main",
workflow_id: "release-desktop.yml",
inputs: {
branch: "${{ inputs.ref }}"
}
});
- uses: actions/github-script@v7
name: trigger release build for mobile
if: ${{ steps.mobile-changed.outputs.status != 0 || github.event_name == 'workflow_dispatch' && contains(fromJson('["LLM", "ALL"]'), inputs.app) }}
with:
github-token: ${{ steps.generate-token.outputs.token }}
script: |
github.rest.actions.createWorkflowDispatch({
owner: "ledgerhq",
repo: "ledger-live-build",
ref: "main",
workflow_id: "release-mobile.yml",
inputs: {
ref: "${{ inputs.ref }}"
}
});
# - 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
# - uses: ruby/setup-ruby@v1
# with:
# ruby-version: 3.3.0
# - name: Cache LLM pods
# uses: actions/cache@v3
# with:
# path: |
# apps/ledger-live-mobile/ios/Pods
# ~/Library/Caches/CocoaPods
# ~/.cocoapods
# key: ${{ runner.os }}-pods-${{ hashFiles('apps/ledger-live-mobile/ios/Podfile.lock') }}
# - name: install dependencies
# run: pnpm i -F "ledger-live" -F "{libs/**}..." -F "@ledgerhq/live-cli"
# - name: build libs
# run: pnpm run build:libs
# - name: authenticate with npm
# uses: actions/setup-node@v4
# with:
# registry-url: "https://registry.npmjs.org"
# - name: publish release
# run: pnpm changeset publish
# env:
# NODE_AUTH_TOKEN: ${{ secrets.NPMJS_TOKEN }}
# - name: check if desktop versions are different
# if: ${{ github.event_name == 'workflow_run' }}
# id: desktop-changed
# run: |
# echo "status=$(git diff HEAD HEAD~1 ./apps/ledger-live-desktop/package.json | grep '"version": "' | wc -l)" >> $GITHUB_OUTPUT
# - name: check if mobile versions are different
# if: ${{ github.event_name == 'workflow_run' }}
# id: mobile-changed
# run: |
# echo "status=$(git diff HEAD HEAD~1 ./apps/ledger-live-mobile/package.json | grep '"version": "' | wc -l)" >> $GITHUB_OUTPUT
# - uses: LedgerHQ/ledger-live/tools/actions/get-package-infos@develop
# id: desktop-version
# with:
# path: ${{ github.workspace }}/apps/ledger-live-desktop
# - uses: LedgerHQ/ledger-live/tools/actions/get-package-infos@develop
# id: mobile-version
# with:
# path: ${{ github.workspace }}/apps/ledger-live-mobile
# - name: generate desktop changelog
# if: ${{ steps.desktop-changed.outputs.status != 0 || github.event_name == 'workflow_dispatch' && contains(fromJson('["LLD", "ALL"]'), inputs.app) }}
# uses: LedgerHQ/ledger-live/tools/actions/generate-release-message@develop
# id: desktop-changelog
# with:
# package-path: ${{ github.workspace }}/apps/ledger-live-desktop/package.json
# changelog-path: ${{ github.workspace }}/apps/ledger-live-desktop/CHANGELOG.md
# output-path: ${{ github.workspace }}
# name: desktop-changelog
# - name: tag desktop
# if: ${{ steps.desktop-changed.outputs.status != 0 || github.event_name == 'workflow_dispatch' && contains(fromJson('["LLD", "ALL"]'), inputs.app) }}
# run: |
# git tag @ledgerhq/live-desktop@${{ steps.desktop-version.outputs.version }}
# - name: generate mobile changelog
# if: ${{ steps.mobile-changed.outputs.status != 0 || github.event_name == 'workflow_dispatch' && contains(fromJson('["LLM", "ALL"]'), inputs.app) }}
# uses: LedgerHQ/ledger-live/tools/actions/generate-release-message@develop
# id: mobile-changelog
# with:
# package-path: ${{ github.workspace }}/apps/ledger-live-mobile/package.json
# changelog-path: ${{ github.workspace }}/apps/ledger-live-mobile/CHANGELOG.md
# output-path: ${{ github.workspace }}
# name: mobile-changelog
# - name: tag mobile
# if: ${{ steps.mobile-changed.outputs.status != 0 || github.event_name == 'workflow_dispatch' && contains(fromJson('["LLM", "ALL"]'), inputs.app) }}
# run: |
# git tag live-mobile@${{ steps.mobile-version.outputs.version }}
# - name: push changes
# run: |
# git push origin ${{ inputs.ref }} --tags
# - name: create desktop github release
# if: ${{ steps.desktop-changed.outputs.status != 0 || github.event_name == 'workflow_dispatch' && contains(fromJson('["LLD", "ALL"]'), inputs.app) }}
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# run: |
# gh release create @ledgerhq/live-desktop@${{ steps.desktop-version.outputs.version }} -F ${{ steps.desktop-changelog.outputs.path }}
# - name: create mobile github release
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# if: ${{ steps.mobile-changed.outputs.status != 0 || github.event_name == 'workflow_dispatch' && contains(fromJson('["LLM", "ALL"]'), inputs.app) }}
# run: |
# gh release create live-mobile@${{ steps.mobile-version.outputs.version }} -F ${{ steps.mobile-changelog.outputs.path }}
# - uses: actions/github-script@v7
# name: trigger release build for desktop
# if: ${{ steps.desktop-changed.outputs.status != 0 || github.event_name == 'workflow_dispatch' && contains(fromJson('["LLD", "ALL"]'), inputs.app) }}
# with:
# github-token: ${{ steps.generate-token.outputs.token }}
# script: |
# github.rest.actions.createWorkflowDispatch({
# owner: "ledgerhq",
# repo: "ledger-live-build",
# ref: "main",
# workflow_id: "release-desktop.yml",
# inputs: {
# branch: "${{ inputs.ref }}"
# }
# });
# - uses: actions/github-script@v7
# name: trigger release build for mobile
# if: ${{ steps.mobile-changed.outputs.status != 0 || github.event_name == 'workflow_dispatch' && contains(fromJson('["LLM", "ALL"]'), inputs.app) }}
# with:
# github-token: ${{ steps.generate-token.outputs.token }}
# script: |
# github.rest.actions.createWorkflowDispatch({
# owner: "ledgerhq",
# repo: "ledger-live-build",
# ref: "main",
# workflow_id: "release-mobile.yml",
# inputs: {
# ref: "${{ inputs.ref }}"
# }
# });
Loading
Loading