Skip to content

Commit da5f15a

Browse files
cipolleschimeta-codesync[bot]
authored andcommitted
Update draft release creation with Hermes V1 (#54313)
Summary: Pull Request resolved: #54313 This change updates the draft release workflow to add dSYMS for Hermes V1 and also updating the url from where the dSYMs can be downloaded. ## Changelog: [Internal] - Reviewed By: j-piasecki Differential Revision: D85758123 fbshipit-source-id: 7d771266de5b3829e9a39c649b610aaf79aa6206
1 parent b0b4344 commit da5f15a

File tree

4 files changed

+124
-11
lines changed

4 files changed

+124
-11
lines changed

.github/workflow-scripts/__tests__/createDraftRelease-test.js

Lines changed: 67 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ describe('Create Draft Release', () => {
121121
});
122122

123123
describe('#_computeBody', () => {
124-
it('computes body for release', async () => {
124+
it('computes body for release when no hermes versions are passed', async () => {
125125
const version = '0.77.1';
126126
const changelog = `## v${version}
127127
### Breaking Changes
@@ -134,20 +134,83 @@ describe('Create Draft Release', () => {
134134
#### iOS
135135
- [PR #3436](https://github.com/facebook/react-native/pull/3436) - Some other change
136136
- [PR #3437](https://github.com/facebook/react-native/pull/3437) - Some other change`;
137-
const body = _computeBody(version, changelog);
137+
const body = _computeBody(changelog, version);
138138

139139
expect(body).toEqual(`${changelog}
140140
141141
---
142142
143143
Hermes dSYMS:
144-
- [Debug](https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/${version}/react-native-artifacts-${version}-hermes-framework-dSYM-debug.tar.gz)
145-
- [Release](https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/${version}/react-native-artifacts-${version}-hermes-framework-dSYM-release.tar.gz)
144+
- [Debug](https://repo1.maven.org/maven2/com/facebook/hermes/hermes-ios/${version}/hermes-ios-${version}-hermes-framework-dSYM-debug.tar.gz)
145+
- [Release](https://repo1.maven.org/maven2/com/facebook/hermes/hermes-ios/${version}/hermes-ios-${version}-hermes-framework-dSYM-release.tar.gz)
146+
147+
Hermes V1 dSYMS:
148+
- [Debug](https://repo1.maven.org/maven2/com/facebook/hermes/hermes-ios/${version}/hermes-ios-${version}-hermes-framework-dSYM-debug.tar.gz)
149+
- [Release](https://repo1.maven.org/maven2/com/facebook/hermes/hermes-ios/${version}/hermes-ios-${version}-hermes-framework-dSYM-release.tar.gz)
150+
151+
ReactNativeDependencies dSYMs:
152+
- [Debug](https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/${version}/react-native-artifacts-${version}-reactnative-dependencies-dSYM-debug.tar.gz)
153+
- [Release](https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/${version}/react-native-artifacts-${version}-reactnative-dependencies-dSYM-release.tar.gz)
154+
155+
ReactNative Core dSYMs:
156+
- [Debug](https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/${version}/react-native-artifacts-${version}-reactnative-core-debug.tar.gz)
157+
- [Release](https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/${version}/react-native-artifacts-${version}-reactnative-core-release.tar.gz)
158+
159+
---
160+
161+
You can file issues or pick requests against this release [here](https://github.com/reactwg/react-native-releases/issues/new/choose).
162+
163+
---
164+
165+
To help you upgrade to this version, you can use the [Upgrade Helper](https://react-native-community.github.io/upgrade-helper/) ⚛️.
166+
167+
---
168+
169+
View the whole changelog in the [CHANGELOG.md file](https://github.com/facebook/react-native/blob/main/CHANGELOG.md).`);
170+
});
171+
172+
it('computes body for release when hermes versions are passed', async () => {
173+
const version = '0.77.1';
174+
const hermesVersion = '0.15.0';
175+
const hermesV1Version = '250829098.0.2';
176+
const changelog = `## v${version}
177+
### Breaking Changes
178+
- [PR #9012](https://github.com/facebook/react-native/pull/9012) - Some other change
179+
180+
#### Android
181+
- [PR #3456](https://github.com/facebook/react-native/pull/3456) - Some other change
182+
- [PR #3457](https://github.com/facebook/react-native/pull/3457) - Some other change
183+
184+
#### iOS
185+
- [PR #3436](https://github.com/facebook/react-native/pull/3436) - Some other change
186+
- [PR #3437](https://github.com/facebook/react-native/pull/3437) - Some other change`;
187+
const body = _computeBody(
188+
changelog,
189+
version,
190+
hermesVersion,
191+
hermesV1Version,
192+
);
193+
194+
expect(body).toEqual(`${changelog}
195+
196+
---
197+
198+
Hermes dSYMS:
199+
- [Debug](https://repo1.maven.org/maven2/com/facebook/hermes/hermes-ios/${hermesVersion}/hermes-ios-${hermesVersion}-hermes-framework-dSYM-debug.tar.gz)
200+
- [Release](https://repo1.maven.org/maven2/com/facebook/hermes/hermes-ios/${hermesVersion}/hermes-ios-${hermesVersion}-hermes-framework-dSYM-release.tar.gz)
201+
202+
Hermes V1 dSYMS:
203+
- [Debug](https://repo1.maven.org/maven2/com/facebook/hermes/hermes-ios/${hermesV1Version}/hermes-ios-${hermesV1Version}-hermes-framework-dSYM-debug.tar.gz)
204+
- [Release](https://repo1.maven.org/maven2/com/facebook/hermes/hermes-ios/${hermesV1Version}/hermes-ios-${hermesV1Version}-hermes-framework-dSYM-release.tar.gz)
146205
147206
ReactNativeDependencies dSYMs:
148207
- [Debug](https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/${version}/react-native-artifacts-${version}-reactnative-dependencies-dSYM-debug.tar.gz)
149208
- [Release](https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/${version}/react-native-artifacts-${version}-reactnative-dependencies-dSYM-release.tar.gz)
150209
210+
ReactNative Core dSYMs:
211+
- [Debug](https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/${version}/react-native-artifacts-${version}-reactnative-core-debug.tar.gz)
212+
- [Release](https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/${version}/react-native-artifacts-${version}-reactnative-core-release.tar.gz)
213+
151214
---
152215
153216
You can file issues or pick requests against this release [here](https://github.com/reactwg/react-native-releases/issues/new/choose).

.github/workflow-scripts/createDraftRelease.js

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,19 +40,29 @@ function _extractChangelog(version) {
4040
return changelog.slice(changelogStarts, changelogEnds).join('\n').trim();
4141
}
4242

43-
function _computeBody(version, changelog) {
43+
function _computeBody(changelog, version, hermesVersion, hermesV1Version) {
44+
hermesVersion = hermesVersion ?? version;
45+
hermesV1Version = hermesV1Version ?? version;
4446
return `${changelog}
4547
4648
---
4749
4850
Hermes dSYMS:
49-
- [Debug](https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/${version}/react-native-artifacts-${version}-hermes-framework-dSYM-debug.tar.gz)
50-
- [Release](https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/${version}/react-native-artifacts-${version}-hermes-framework-dSYM-release.tar.gz)
51+
- [Debug](https://repo1.maven.org/maven2/com/facebook/hermes/hermes-ios/${hermesVersion}/hermes-ios-${hermesVersion}-hermes-framework-dSYM-debug.tar.gz)
52+
- [Release](https://repo1.maven.org/maven2/com/facebook/hermes/hermes-ios/${hermesVersion}/hermes-ios-${hermesVersion}-hermes-framework-dSYM-release.tar.gz)
53+
54+
Hermes V1 dSYMS:
55+
- [Debug](https://repo1.maven.org/maven2/com/facebook/hermes/hermes-ios/${hermesV1Version}/hermes-ios-${hermesV1Version}-hermes-framework-dSYM-debug.tar.gz)
56+
- [Release](https://repo1.maven.org/maven2/com/facebook/hermes/hermes-ios/${hermesV1Version}/hermes-ios-${hermesV1Version}-hermes-framework-dSYM-release.tar.gz)
5157
5258
ReactNativeDependencies dSYMs:
5359
- [Debug](https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/${version}/react-native-artifacts-${version}-reactnative-dependencies-dSYM-debug.tar.gz)
5460
- [Release](https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/${version}/react-native-artifacts-${version}-reactnative-dependencies-dSYM-release.tar.gz)
5561
62+
ReactNative Core dSYMs:
63+
- [Debug](https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/${version}/react-native-artifacts-${version}-reactnative-core-debug.tar.gz)
64+
- [Release](https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/${version}/react-native-artifacts-${version}-reactnative-core-release.tar.gz)
65+
5666
---
5767
5868
You can file issues or pick requests against this release [here](https://github.com/reactwg/react-native-releases/issues/new/choose).
@@ -113,15 +123,21 @@ function moveToChangelogBranch(version) {
113123
run(`git checkout -b changelog/v${version}`);
114124
}
115125

116-
async function createDraftRelease(version, latest, token) {
126+
async function createDraftRelease(
127+
version,
128+
latest,
129+
token,
130+
hermesVersion,
131+
hermesV1Version,
132+
) {
117133
if (version.startsWith('v')) {
118134
version = version.substring(1);
119135
}
120136

121137
_verifyTagExists(version);
122138
moveToChangelogBranch(version);
123139
const changelog = _extractChangelog(version);
124-
const body = _computeBody(version, changelog);
140+
const body = _computeBody(changelog, version, hermesVersion, hermesV1Version);
125141
const release = await _createDraftReleaseOnGitHub(
126142
version,
127143
body,

.github/workflows/create-draft-release.yml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@ name: Create Draft Release
22

33
on:
44
workflow_call:
5+
inputs:
6+
hermesVersion:
7+
required: false
8+
type: string
9+
description: The version of Hermes to use for this release (eg. 0.15.0). If not specified, it will use React Native Version
10+
hermesV1Version:
11+
required: false
12+
type: string
13+
description: The version of Hermes V1 to use for this release (eg. 250829098.0.2). If not specified, it will use React Native Version
514

615
jobs:
716
create-draft-release:
@@ -27,7 +36,7 @@ jobs:
2736
const {createDraftRelease} = require('./.github/workflow-scripts/createDraftRelease.js');
2837
const version = '${{ github.ref_name }}';
2938
const {isLatest} = require('./.github/workflow-scripts/publishTemplate.js');
30-
return (await createDraftRelease(version, isLatest(), '${{secrets.REACT_NATIVE_BOT_GITHUB_TOKEN}}')).id;
39+
return (await createDraftRelease(version, isLatest(), '${{secrets.REACT_NATIVE_BOT_GITHUB_TOKEN}}', ${{ inputs.hermesVersion }}, ${{ inputs.hermesV1Version }})).id;
3140
result-encoding: string
3241
- name: Upload release assets for DotSlash
3342
uses: actions/github-script@v6

.github/workflows/publish-release.yml

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,28 @@ jobs:
1919
echo "Setting release type to release"
2020
echo "RELEASE_TYPE=release" >> $GITHUB_OUTPUT
2121
22+
set_hermes_versions:
23+
runs-on: ubuntu-latest
24+
if: github.repository == 'facebook/react-native'
25+
outputs:
26+
HERMES_VERSION: ${{ steps.set_hermes_versions.outputs.HERMES_VERSION }}
27+
HERMES_V1_VERSION: ${{ steps.set_hermes_versions.outputs.HERMES_V1_VERSION }}
28+
steps:
29+
- name: Checkout
30+
uses: actions/checkout@v4
31+
- id: set_hermes_versions
32+
run: |
33+
echo "Setting hermes versions to latest"
34+
hermes_version=$(grep -oE 'HERMES_VERSION_NAME=([0-9]+\.[0-9]+\.[0-9]+)' packages/react-native/sdks/hermes-engine/version.properties | cut -d'=' -f2)
35+
hermes_v1_version=$(grep -oE 'HERMES_V1_VERSION_NAME=([0-9]+\.[0-9]+\.[0-9]+)' packages/react-native/sdks/hermes-engine/version.properties | cut -d'=' -f2)
36+
37+
echo "HERMES_VERSION=$hermes_version" >> $GITHUB_OUTPUT
38+
echo "HERMES_V1_VERSION=$hermes_v1_version" >> $GITHUB_OUTPUT
39+
- name: Print hermes versions
40+
run: |
41+
echo "HERMES_VERSION=${{ steps.set_hermes_versions.outputs.HERMES_VERSION }}"
42+
echo "HERMES_V1_VERSION=${{ steps.set_hermes_versions.outputs.HERMES_V1_VERSION }}"
43+
2244
prebuild_apple_dependencies:
2345
if: github.repository == 'facebook/react-native'
2446
uses: ./.github/workflows/prebuild-ios-dependencies.yml
@@ -117,6 +139,9 @@ jobs:
117139
secrets: inherit
118140

119141
create_draft_release:
120-
needs: generate_changelog
142+
needs: [generate_changelog, set_hermes_versions]
121143
uses: ./.github/workflows/create-draft-release.yml
122144
secrets: inherit
145+
with:
146+
hermesVersion: ${{ needs.set_hermes_versions.outputs.HERMES_VERSION }}
147+
hermesV1Version: ${{ needs.set_hermes_versions.outputs.HERMES_V1_VERSION }}

0 commit comments

Comments
 (0)